Artículos con la etiqueta 'CGRectMake'

Objective-C: Adición de las notificaciones y los delegados

Respuesta a la pregunta de ILeW con un artículo sobre lo que el real, adjuntando tales como notificaciones y de trabajo los delegados. El uso de un patrón que ver primero cómo el patrón de delegado:

Delegate

Un objeto en busca de un delegado

Continuación ...

10 fragmentos de útiles de Objective-C

Mueva el doble toque en el simulador

El simulador de iPhone / iPad Xcode te permite simular el doble toque se presiona la tecla Alt. Esto es útil para simular la función de Pinch, que se utiliza para aumentar o desplazarse Mantener alejado contenido en el punto de vista con los objetos o UIWebView . Bueno, algunos de ustedes han notado que la simulación de los "dos dedos" procede de una manera simétrica siempre desde el centro de la pantalla. Para avanzar en este "centro" se encuentra a sólo mantenga presionada la tecla SHIFT.

Continuación ...

UIImage: fragmentos de útiles

, sono molto utilizzati nello sviluppo di applicazioni per Apple iPhone. El objeto de UIImage , junto con UIImageView , son ampliamente utilizados en el desarrollo de aplicaciones para el iPhone de Apple. Aquí hay un código útil fragmento-hacer una serie de procesos comunes:

La combinación de dos (o más) imágenes

1
2
3
4
5
6
7
8
9
10
11
12
UIImage * ) combineImage : ( UIImage * ) imageA imageB : ( UIImage * ) imageB { - (UIImage *) combineImage: (UIImage *) Imageo imageB: (UIImage *) {imageB
; UIGraphicsBeginImageContext (imageA.size);

CGRectMake ( 0 , 0 , imageA.size.width, imageA.size.height ) ] ; [Imageo drawInRect: CGRectMake (0, 0, imageA.size.width, imageA.size.height)];
CGRectMake ( 0 , 0 , imageB.size.width, imageB.size.height ) ] ; [ImageB drawInRect: CGRectMake (0, 0, imageB.size.width, imageB.size.height)];

UIGraphicsGetImageFromCurrentImageContext ( ) ; UIImage * combinatedImage UIGraphicsGetImageFromCurrentImageContext = ();

UIGraphicsEndImageContext ();

combinatedImage retorno;
}

Continuación ...

Personalizar las secciones de un UITableView agrupados

potremmo aver necessità di personalizzare la grafica dei titoli delle sezioni, come California o New York dell'esempio qui sotto. Cuando se utiliza un UITableView estilo Grouped podemos necesitar para personalizar el diseño de los títulos de las secciones, como California o Nueva York, el ejemplo de abajo.

UITableView

Para ello, utilice el siguiente código, colocarlo en el delegado, es decir, en la clase que responde al protocolo UITableViewDelegate :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/ / Devuelve Ver mi costumbre, en este caso un objeto
/ / Tipo UILabel
UIView * ) tableView : ( UITableView * ) tableView - (* UIView) tableView: (UITableView *) tableView
NSInteger ) section { viewForHeaderInSection: (NSInteger) section {

[ [ [ UILabel alloc ] initWithFrame : CGRectZero ] autorelease ] ; UILabel * label = [[[UILabel alloc] initWithFrame: CGRectZero] autorelease];
UIFont boldSystemFontOfSize : 20 ] ; label.font = [UIFont boldSystemFontOfSize: 20];
label.textAlignment = UITextAlignmentCenter;
UIColor blackColor ] ; label.shadowColor = [UIColor BlackColor];
1 , 1 ) ; label.shadowOffset CGSizeMake = (1, 1);
"Sezione" ; // Sostituire con un array come al solito Label.Text @ = "sección", / / Reemplazar con una serie como de costumbre
UIColor whiteColor ] ; label.textColor = [UIColor whiteColor];
UIColor clearColor ] ; label.backgroundColor = [UIColor clearColor];
; label.opaque = NO;

etiqueta de devolución;
}
/ / También debemos apoyar este mensaje no funcionan de otra manera
CGFloat ) tableView : ( UITableView * ) tableView - (CGFloat) tableView: (UITableView *) tableView
NSInteger ) section { heightForHeaderInSection: (NSInteger) section {
; retorno 44;
}

También es importante incluir heightForHeaderInSection , no funcionará.

Notas de interés

o UIImageView , ho utilizzato per inizializzare il frame CGRectZero che corrisponde a CGRectMake(0,0,0,0) . En la creación de nuestra UILabel , que también podría ser un objeto de deseo más complejos como una UIView o UIImageView , que utiliza para inicializar la frame CGRectZero correspondiente a CGRectMake(0,0,0,0) .

Continuación ...

Objective-C: una alternativa al uso de CGRectMake

CGRectMake() es una función (en realidad una línea # define) que se utiliza mucho, especialmente cuando se crea objetos gráficos de código o interfaz de usuario. o UIImageView . CGRectMake() restituisce una struct (struttura di tipo) CGRect : Su uso se asocia a menudo por lo tanto, los componentes de la inicialización de UIKit , sino también a simples UIView o UIImageView . CGRectMake() devuelve una struct (tipo de estructura) CGRect :

1
2
3
4
5
struct {CGRect
CGPoint origen;
CGSize tamaño;
};
typedef struct CGRect CGRect;

: Que a su vez se compone de dos diferentes struct CGPoint y CGSize :

1
2
3
4
5
6
7
8
9
10
11
12
13
struct {CGPoint
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;

Tamaños / *. * /

struct {CGSize
Ancho CGFloat;
CGFloat altura;
};
typedef struct CGSize CGSize;

. Que, a su vez, otra vez, contienen tipos CGFloat o el tipo float . Si analizamos el código de CGRectMake () son los siguientes:

1
2
3
4
5
6
7
8
CG_INLINE CGRect
CGRectMake (CGFloat x, y CGFloat, ancho CGFloat, CGFloat altura)
{
CGRect rect;
y; rect.origin.x = x, y = rect.origin.y;
height; rect.size.width = anchura, altura = rect.size.height;
volver rect;
}

De ello se desprende, por tanto, que este pedazo de código:

1
2
3
4
[ UIButton buttonWithType : UIButtonTypeRoundedRect ] ; UIButton gbutton * = [UIButton buttonWithType: UIButtonTypeRoundedRect];
12 , 409 , 100 , 40 ) ; gbutton.frame CGRectMake = (12, 409, 100, 40);
@ "Press" forState : UIControlStateNormal ] ; [Gbutton setTitle: @ "Prensa" Forst: UIControlStateNormal];
gbutton ] ; [MainWindow addSubview: gbutton];

Con razón se puede escribir como:

1
2
3
4
[ UIButton buttonWithType : UIButtonTypeRoundedRect ] ; UIButton gbutton * = [UIButton buttonWithType: UIButtonTypeRoundedRect];
CGRect ) { 12 , 409 , 100 , 40 } ; gbutton.frame = (CGRect) {12, 409, 100, 40};
@ "Press" forState : UIControlStateNormal ] ; [Gbutton setTitle: @ "Prensa" Forst: UIControlStateNormal];
gbutton ] ; [MainWindow addSubview: gbutton];

Sólo para acelerar las cosas "se ejecuta el código ... :)

Continuación ...

iPhone: extender una clase UIView

creato. Quiero mostrar cómo se puede, con facilidad y rapidez extender una clase UIView de una manera que responde a un nuevo método de inicialización contiene códigos adicionales para personalizar el objeto UIView creado. Como algunos de ustedes probablemente saben, Objective-C no es compatible con un solo fabricante como en las lenguas objeto de otros orientados (como Adobe ActionScript y PHP 5). Es posible, de hecho, crear una instancia de una clase invocando manualmente de diferentes fabricantes (casi infinito). . Normalmente se utilizan para crear objetos UIView con el clásico initWithFrame . Pero imagine que desea crear una nueva clase de objetos visuales, desde un UIView , con algunas adiciones, como una etiqueta incorporada. . Básicamente lo que queremos es que nuestro objeto de crear una instancia que genera, así como la UIView , un objeto de tipo UILabel . Por ejemplo podríamos querer llegar al final:

1
[ [ ViewLabel alloc ] initWithLabelDefine : CGRectMake ( 0 , 0 , 320 , 80 ) label : @ "Ciao" ] ; ViewLabel vl = * [[ViewLabel alloc] initWithLabelDefine: CGRectMake (0, 0, 320, 80) etiquetas: @ "Hola"];

: Para ello basta con crear una nueva clase de tipo UIView y llamar ViewLabel :

1
2
3
4
5
6
7
8
9
10
11
12
13
/ /
/ / ViewLabel.h
/ /

# Importar <UIKit/UIKit.h>

UIView { @ Interface ViewLabel: UIView {
* UILabel internalLabel;
}

id ) initWithLabelDefine : ( CGRect ) frame label : ( NSString * ) labelDefine; - (Id) initWithLabelDefine: (CGRect) etiqueta de fotograma: ( NSString *) labelDefine;

@ End
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/ /
/ / ViewLabel.m
/ /

# Import "ViewLabel.h"

@ Implementación ViewLabel

id ) initWithFrame : ( CGRect ) frame { - (Id) initWithFrame: (CGRect) frame {

self = [ super initWithFrame : frame ] ) { if (self = [super initWithFrame: marco]) {
/ / Código de inicialización
}
cambio sí;
}

/ /
/ / El inicializador de nuevo
/ /
id ) initWithLabelDefine : ( CGRect ) frame label : ( NSString * ) labelDefine { - (Id) initWithLabelDefine: (CGRect) etiqueta de fotograma: ( NSString *) {labelDefine

self = [ super initWithFrame : frame ] ) { if (self = [super initWithFrame: marco]) {
/ / Aquí se puede decidir qué hacer, yo por
/ / Tengo el mismo marco de seguridad en el pasado
/ / Entrada, pero se restablece el X e Y
; frame.origin.x = 0;
; frame.origin.y = 0;
UILabel alloc ] initWithFrame : frame ] ; internalLabel = [[UILabel alloc] initWithFrame: marco];
internalLabel.text = labelDefine;
internalLabel ] ; [Self addSubview: internalLabel];
; [InternalLabel liberación];
}
cambio sí;
}

void ) drawRect : ( CGRect ) rect { - (Void) drawRect: (CGRect) rect {
/ / Dibujo de código
}

void ) dealloc { - (Void) {dealloc
; [Super dealloc];
}

@ End

En el momento de la creación de la nueva clase, que podríamos utilizar:

1
[ [ ViewLabel alloc ] initWithLabelDefine : CGRectMake ( 0 , 0 , 320 , 80 ) label : @ "Ciao" ] ; ViewLabel vl = * [[ViewLabel alloc] initWithLabelDefine: CGRectMake (0, 0, 320, 80) etiquetas: @ "Hola"];

Continuación ...

Apple iPhone 3.0 SDK: Corregido bug en UIButton buttonWithType

Como se indica en el mensaje de Apple iPhone 3.0 SDK: incompatibilidad primero de la 3.0 SDK de Apple muestran diferentes comportamientos con respecto a la versión 2.2.1. Servicio de apoyo a los desarrolladores me dio la respuesta, y entonces la solución al problema. . La respuesta fue que el apoyo técnico [UIButton buttonWithType:] ya llamada - interno - la initWithFrame . De ello se desprende que, de acuerdo con el apoyo técnico, por escrito:

Continuación ...