que - ¿Cómo creo una grilla de íconos como la pantalla de inicio del iPhone?
para que sirven los gestos en el iphone (6)
¿Cómo debo crear una interfaz de usuario similar a Springboard (pantalla de inicio) en el iPhone? Me gustaría una cuadrícula de botones espaciados uniformemente con imágenes donde pueda responder al toque del botón.
¿Es la UITable una buena opción? ¿Debo usar un UIView simple y colocar los íconos manualmente en DrawRect? ¿Hay alguna alternativa que espacie automáticamente los botones, permita la reorganización y ajuste el diseño de acuerdo con la orientación del iPhone?
Vengo de un fondo de C # / Winforms y ahora estoy empezando el desarrollo de iPhone en Open Toolchain con 2.2.1 encabezados.
Debe agregar sus iconos (que son UIViews de algún tipo) como subvistas de su vista "Springboard". No se necesita un dibujo personalizado, y un UITable es el camino absolutamente equivocado por recorrer. Solo necesita hacer los cálculos para colocarlos correctamente (al establecer su marco).
@August: tomé su consejo y agregué los UIButtons como subvistas de UIView en lugar de mirar más allá en UITable. ¡Gracias!
Con suerte, el siguiente código ayudará a reactivar a alguien más. He colocado estáticamente 4 botones en una cuadrícula. No debería ser mucho más difícil colocar cualquier cantidad de botones de acuerdo con los límites y la orientación de UIView de los padres.
@implementation IconView
- (id)initWithFrame:(struct CGRect)windowRect{
self = [super initWithFrame: windowRect];
if (self != nil){
for(int i = 0; i < 4; i++){
buttons[i] = [self buildButton];
[self addSubview: buttons[i]];
}
[self reInit];
}
return self;
}
- (UIButton *) buildButton{
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];
[button setBackgroundImage: [[UIImage imageNamed:@"icon.png"] stretchableImageWithLeftCapWidth:60 topCapHeight:0] forState:UIControlStateNormal];
return [button autorelease];
}
- (void)reInit{
CGRect rect;
rect = buttons[0].frame;
rect.origin = CGPointMake(5, 5);
buttons[0].frame = rect;
rect = buttons[1].frame;
rect.origin = CGPointMake(70, 5);
buttons[1].frame = rect;
rect = buttons[2].frame;
rect.origin = CGPointMake(5, 70);
buttons[2].frame = rect;
rect = buttons[3].frame;
rect.origin = CGPointMake(70, 70);
buttons[3].frame = rect;
}
@end
Use la implementación gridView de Arijasoft. Es una biblioteca estática que le permite generar el tipo de vista de cuadrícula con devolución de llamadas y métodos delegados para la optimización
Tema antiguo, pero también debes consultar AQGridView de Alan Quartrmain.
Como se indicó anteriormente, usar UIView y hacer matemática para diseñar las vistas es la opción más fácil.
compruebe el código de ejemplo de developer.apple.com https://developer.apple.com/library/ios/#samplecode/PageControl/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007795
Dependiendo de sus requisitos, es posible que no necesite usar ningún marco externo.
He escrito un código de muestra para hacer algo como esto. Vea mi entrada de blog Tiles , o simplemente descargue el código: Tiles-v1.0.zip .
Mi código crea los íconos como capas de animación principal, no como UIViews, pero sí muestra cómo detectar los grifos y permite la reorganización de los íconos. No maneja cambios de orientación.