He descubierto un problema extraño al usar UIActionSheet en el iPhone (iOS 4.2). Considere este código:UIActionSheet button ¿Los valores de índice son incorrectos cuando se utilizan más de 6 botones personalizados?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:@"TestSheet"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles: nil];
[actionSheet addButtonWithTitle:@"one"];
[actionSheet addButtonWithTitle:@"two"];
[actionSheet addButtonWithTitle:@"three"];
[actionSheet addButtonWithTitle:@"four"];
[actionSheet addButtonWithTitle:@"five"];
[actionSheet addButtonWithTitle:@"six"];
//uncomment next line to see the problem in action
//[actionSheet addButtonWithTitle:@"seven"];
[actionSheet showInView:window];
[actionSheet release];
return YES;
}
- (void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"buttonIndex: %d, cancelButtonIndex: %d, firstOtherButtonIndex: %d",
buttonIndex,
actionSheet.cancelButtonIndex,
actionSheet.firstOtherButtonIndex);
}
Si se inicia esta aplicación, el actionsheet se comporta como se esperaba. Eso significa que cancelButtonIndex siempre es 0 y los índices de los botones se informan correctamente. 1 para el botón "uno" y así sucesivamente. Si hace un comentario en la línea para agregar el séptimo botón, la hoja de acciones produce una especie de tabla vista, con el botón cancelar en una línea adicional. Si presiono el botón "uno" en este caso, la variable buttonindex es 0, pero también lo es el cancelButtonIndex. Es imposible saber si el usuario ha tocado el botón "cancelar" o "uno". Eso no parece que debería ser de esta manera. ¿Alguien está en desacuerdo? Gracias por tu ayuda.
Seis botones en la hoja de acción? De Verdad? Sugiero usar una tabla para las opciones ... – Eimantas
Bueno, ¿de qué sirve tener una hoja de acción que puede manejar más de 6 botones en una vista de desplazamiento si no se supone que debes usarla? – huesforalice
Tuve el mismo problema, aparentemente es un error –