Artículos con la etiqueta 'CGRect'

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

Respuesta a la pregunta de ILeW con un artículo a una mejor explicarse a sí misma, adjuntando ejemplo , el trabajo en calidad de delegados y las notificaciones. El uso de un modelo que vemos en primer lugar cómo el patrón de delegado:

Delegate

Un objeto en busca de un delegado

Más información ...

10 fragmentos de útiles de Objective-C

Mueva la llave doble en el simulador

El simulador de iPhone / iPad en Xcode te permite simular el toque dos veces la tecla ALT que se presiona. Esto es útil para simular la función de Pinch, que se utiliza para ampliar o Mantener alejado de vista con desplazamiento que figura en el o en los objetos UIWebView . Bueno, algunos de ustedes pueden haber notado que la simulación de los "dos dedos" procede simétricamente siempre partiendo desde el centro de la pantalla. Para mover este "centro" es también sólo mantenga presionada la tecla SHIFT.

Más información ...

Personalizar las secciones en 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 es posible que necesitemos para personalizar el diseño de los títulos de las secciones, tales como California o Nueva York, el ejemplo de abajo.

UITableView

Para ello, utilice el siguiente código, colocarlo en el delegado, es decir, 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
/ / Vuelvo mi punto de vista personalizado, 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 gran variedad, 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 va a funcionar
CGFloat ) tableView : ( UITableView * ) tableView - (CGFloat) tableView: (UITableView *) tableView
NSInteger ) section { heightForHeaderInSection: (NSInteger) section {
; volver 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 querer también podría ser un objeto más complejo, como un UIView o UIImageView , que utiliza para inicializar el frame CGRectZero que corresponde a CGRectMake(0,0,0,0) .

Más información ...

Apple iPhone: Crear un botón de activación personalizado

non funzionano quando un UIButton è impostato in modalità UIButtonTypeCustom ! Los estados UIControlStateSelected o UIControlStateHighlighted no funcionan cuando un UIButton modo se establece UIButtonTypeCustom ! O, mejor dicho, no funcionan (porque reservados para otros tipos de botón), por ejemplo, para crear un botón con dos estados: nota de alternancia. Si hemos creado dos imágenes (stato1.png y stato2.png) para nuestro botón, podemos proceder de la siguiente manera:

1
2
3
/ / El encabezado del archivo que creamos una variable global para usaremo
/ / Activar el cheque era
ToggleFlag BOOL;

Ahora vamos a crear nuestro botón:

1
2
3
4
5
6
7
8
9
/ / Creamos un botón y lo colocamos inicialmente en el estado "stato1.png"
/ / Edición initWithFrame: (CGRect)} {100,100,50,50 con la posición y
/ / Tamaño de la imagen tiene
; toggleFlag = YES;
[ [ UIButton buttonWithType : UIButtonTypeCustom ] initWithFrame : ( CGRect ) { 100 , 100 , 50 , 50 } ] ; UIButton ToggleButton * = [[UIButton buttonWithType: UIButtonTypeCustom] initWithFrame: (CGRect) {100, 100, 50, 50}];
@ "" forState : UIControlStateNormal ] ; [ToggleButton setTitle: @ "" forState: UIControlStateNormal];
[ UIImage imageNamed : @ "stato1.png" ] forState : UIControlStateNormal ] ; [ToggleButton setBackgroundImage: [UIImage imageNamed: @ "stato1.png"] forState: UIControlStateNormal];
self action : @selector ( onToggle : ) forControlEvents : UIControlEventTouchUpInside ] ; [Addtarget ToggleButton: acción de auto: @ selector (onToggle forControlEvents :): UIControlEventTouchUpInside];
toggleButton ] ; [Self.view addSubview: ToggleButton];

Al hacer clic en el botón, se envía un mensaje a gestionar onToggle :

1
2
3
4
5
6
7
void ) onToggle : ( id ) sender { - (Void) onToggle: (id) {emisor
/ / Recuperar puntero a UIButton
( UIButton * ) sender; UIButton buttonClicked * = (UIButton *) del remitente;
/ / Ejecutar el Toogle
toggleFlag = toggleFlag!;
[ UIImage imageNamed : ( toggleFlag ) ? @ "stato1.png" : @ "stato2.png" ] forState : UIControlStateNormal ] ; [ButtonClicked setBackgroundImage: [UIImage imageNamed: (toggleFlag) @ "Stato1.png" @ "stato2.png"] forState: UIControlStateNormal];
}

Más información ...

Objective-C: NSLog () de C struct

o CGPoint , ad esempio. La sintaxis NSLog(@"%@", ... ); que funciona y se utiliza para obtener información sobre los objetos, pero no funciona en C tipos de datos tales como la estructura CGRect o CGPoint , por ejemplo. o NSStringFromCGPoint : Para aprovechar NSLog(@"%@", ... ); también de tipo C. estructuras que pueden apoyarse en funciones de conversión como NSStringFromCGRect() o NSStringFromCGPoint :

1
2
3
4
5
CGRect ) { 10 , 20 , 30 , 40 } ; CGRect mioRect = (CGRect) {10, 20, 30, 40};
CGPoint ) { 32 , 64 } ; CGPoint mioPoint = (CGPoint) {32, 64};
/ /
"Info rettangolo: %@" , NSStringFromCGRect ( mioRect ) ) ; NSLog (@ "rectángulo de Información:% @", NSStringFromCGRect (mioRect));
"Info point: %@" , NSStringFromCGPoint ( mioPoint ) ) ; NSLog (@ "punto de información:% @", NSStringFromCGPoint (mioPoint));

En concreto, es posible perfeccionar los procedimientos correspondientes macros útiles pequeños, como:

1
# Definir NSLogRect (Rect) NSLog (@ "% s (% 0.0f,% 0.0f) 0.0f% 0.0fx%", # rect, rect.origin.x, rect.origin.y, rect.size.width , rect.size.height)

O bien:

1
2
3
4
# Definir NSLogCGPoint (punto) NSLog (@ "% s (% 0.0f,% 0.0f)", # punto.x punto, Point.y)

CGPoint ) { 32 , 64 } ; CGPoint mioPoint = (CGPoint) {32, 64};
; NSLogCGPoint (mioPoint);

Esto dará como resultado:

1
32 , 64 ) mioPoint: (32, 64)

Más información ...

Objective-C: una alternativa al uso de CGRectMake

CGRectMake() es una función (en realidad una línea # define) que se utiliza mucho sobre todo cuando los objetos son creados por el código o la interfaz gráfica de usuario. o UIImageView . CGRectMake() restituisce una struct (struttura di tipo) CGRect : Su uso está por lo tanto, a menudo asociada componentes de inicialización de UIKit , sino también a simple 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 estructura 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
CGFloat ancho;
CGFloat altura;
};
typedef struct CGSize CGSize;

. Eso, a su vez, otra vez, contienen tipos CGFloat , o los tipos de 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; rect.origin.y = y;
height; rect.size.width = ancho; rect.size.height = altura;
volver rect;
}

De ello se deduce, por tanto, que esta parte del 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" forState: 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" forState: UIControlStateNormal];
gbutton ] ; [MainWindow addSubview: gbutton];

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

Más información ...


Deje de SOPA