Кто-то отправил этот код в другом вопросе поставить UIDatePicker в UIAlertSheet:UIDatePicker в UIActionSheet отводками проблема
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];
Я изменил его к этому:
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)];
Это дает предупредительный лист правильно (игнорируйте делегата nil, это просто для показа). Проблема заключается здесь:
alt text http://hosting-wizards.com/actionsheet.jpg
Как вы можете видеть, выше минуту скроллер, есть проблема наслоения. Я не подтвердил, что это происходит на устройстве. Любые идеи относительно того, почему это происходит?
Другой вопрос: почему селектор setBounds на UIActionSheet имеет размер Y, установленный с таким высоким значением для правильного отображения? Установка размера Y на 480 должна создать полноэкранный режим, если нет? Установка этого значения на ноль делает его почти невидимым.
ПРИМЕЧАНИЕ: Приведенный выше код не позиционирует UIDatePicker в том же месте, что и на картинке, но проблема с расслоением возникает независимо от места размещения UIDatePicker. Проблема расслоения находится только сверху, а не внизу.
inputView доступен в iOS 4.0 и выше. Невозможно использовать его, если вы хотите поддерживать 3.1 –