Alguien envió este código en otra pregunta para poner un UIDatePicker en un UIAlertSheet:UIDatePicker en UIActionSheet capas problema
UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:nil];
// Add the picker
UIDatePicker *pickerView = [[UIDatePicker alloc] init];
pickerView.datePickerMode = UIDatePickerModeDate;
[menu addSubview:pickerView];
[menu showInView:self.view];
[menu setBounds:CGRectMake(0,0,320, 500)];
CGRect pickerRect = pickerView.bounds;
pickerRect.origin.y = -100;
pickerView.bounds = pickerRect;
[pickerView release];
[menu release];
lo he modificado para esto:
UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:nil
delegate:nil
cancelButtonTitle:@"Done"
destructiveButtonTitle:nil
otherButtonTitles:nil];
// Add the picker
UIDatePicker *pickerView = [[UIDatePicker alloc] init];
pickerView.datePickerMode = UIDatePickerModeCountDownTimer;
[menu addSubview:pickerView];
[menu showInView:self.navigationController.tabBarController.view];
[menu setBounds:CGRectMake(0,0,320, 516)];
[pickerView setFrame:CGRectMake(0, 85, 320, 216)];
Esto produce una hoja de alerta correctamente posicionado (ignore el delegado nulo; esto es solo para fines de visualización). El problema radica aquí:
alt text http://hosting-wizards.com/actionsheet.jpg
Como se puede ver, por encima de la barra de desplazamiento minutos, hay un problema de estratificación. No he confirmado si esto ocurre en el dispositivo. ¿Alguna idea de porqué está pasando esto?
Otra pregunta: ¿Por qué el selector setBounds en la hoja UIActionSheet tiene el tamaño Y establecido en un valor tan alto para la visualización correcta? Establecer el tamaño Y a 480 debería crear una pantalla completa, ¿no es así? Establecer este valor en cero lo hace casi invisible.
LADO NOTA: El código pegado arriba no coloca el UIDatePicker en el mismo lugar que está en la imagen, pero el problema de superposición ocurre sin importar dónde se coloca el UIDatePicker. El problema de la superposición solo está en la parte superior, no en la parte inferior.
inputView está disponible en iOS 4.0 y superior. No se puede usar si quieres soportar 3.1 –