高度UIAlertControler在iPhone上的UIDatePicker不够高

时间:2015-09-03 10:10:58

标签: ios uidatepicker uialertcontroller

我想以编程方式添加一个带有UIDatePicker的模态UIAlertController,以便在iOS 7中选择日期。选择器工作正常,但UIAlertController的高度不足以显示日期选择器。解决这个问题可能非常简单,但我无法找到解决方案。

-(void) iphoneActionsheet {
    self.searchActionSheet=[UIAlertController alertControllerWithTitle:@"" message:@"" preferredStyle:UIAlertControllerStyleActionSheet];
    self.searchActionSheet.modalPresentationStyle = UIModalPresentationOverCurrentContext;
    NSInteger iPhoneWidth = self.view.frame.size.width;
    self.searchActionSheet.view.frame = CGRectMake(0, 0, iPhoneWidth, 250);
    [ self.searchActionSheet.view setBounds:CGRectMake(0, 0, iPhoneWidth, 250)];

    UIView *datepickerView = [UIView new];
    datepickerView.frame = CGRectMake(0, 0, self.view.frame.size.width, 250);

    UIDatePicker *datePicker=[UIDatePicker new];//Date picker
    datePicker.frame=CGRectMake(0,0,iPhoneWidth, 200);
    datePicker.datePickerMode = UIDatePickerModeTime;
    [datePicker setMinuteInterval:1];
    [datePicker setTag:10];
    if(self.activeDate)[datePicker setDate:self.activeDate];
    [datePicker addTarget:self action:@selector(datePickerResult:) forControlEvents:UIControlEventValueChanged];
    [datepickerView addSubview:datePicker];


    [self.searchActionSheet.view addSubview:datepickerView];
    [self presentViewController:self.searchActionSheet animated:YES completion:nil];

}

enter image description here

1 个答案:

答案 0 :(得分:0)

由于Apple在人机界面指南中声明此控件应用于显示短用户消息而不是其他控件或文本墙,因此无法设置UIAlertController的高度。

我建议使用UIPopoverController并实现自己的dismiss按钮,因为UIAlertController的目的更多是根据Apple文档向用户显示警告消息(短消息)。

在此处了解有关UIPopoverController的更多信息:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIPopoverController_class/