【问题标题】:iOS UIDatePicker not showing inside a UIActionSheetiOS UIDatePicker 未显示在 UIActionSheet 中
【发布时间】:2023-03-05 18:24:01
【问题描述】:

我是 iOS 新手,第一次使用这个 DatePicker。我正在尝试在 UIActionSheet 中显示日期选择器。我从其他 StackOver 流程​​主题中获得了此代码

- (void)showDatePicker:(UITapGestureRecognizer *)recognizer {
    NSLog(@"label touched");
    UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker"
                                                      delegate:self
                                             cancelButtonTitle:@"Cancel"
                                        destructiveButtonTitle:nil
                                             otherButtonTitles:@"OK",nil];
    // Add the picker
    UIDatePicker *pickerView = [[UIDatePicker alloc] init];
    pickerView.datePickerMode = UIDatePickerModeTime;
    [menu addSubview:pickerView];
    [menu showInView:self.view];
    
    CGRect menuRect = menu.frame;
    CGFloat orgHeight = menuRect.size.height;
    menuRect.origin.y -= 214; //height of picker
    menuRect.size.height = orgHeight+214;
    menu.frame = menuRect;
    
    
    CGRect pickerRect = pickerView.frame;
    pickerRect.origin.y = orgHeight;
    pickerView.frame = pickerRect;
    
    //[pickerView release];
    //[menu release];
}

但 DatePicker 未显示。这就是我得到的。

我在这里做错了什么?

【问题讨论】:

标签: ios objective-c


【解决方案1】:

根据苹果文档

重要提示UIActionSheet 在 iOS 8 中已弃用。(请注意,UIActionSheetDelegate 也已弃用。)要在 iOS 8 及更高版本中创建和管理操作表,请改用 UIAlertControllerpreferredStyleUIAlertControllerStyleActionSheet

或者您可以将 datePicker 作为 inputView 添加到 Textfield。 (只需使用UITextfield 而不是UIButton 来打开选择器)

UIDatePicker *datepicker = [[UIDatePicker alloc] initWithFrame:CGRectZero];
[datepicker setDatePickerMode:UIDatePickerModeDate];
myTextField.inputView = datepicker;

【讨论】:

  • 实际上我希望 DatePicker 在单击标签时打开。
  • 那么你需要在UILabel上使用UIAlertController
猜你喜欢
  • 1970-01-01
  • 2012-08-19
  • 2021-04-19
  • 2023-03-25
  • 2011-08-21
  • 2013-10-05
  • 2010-09-25
  • 2023-03-20
  • 1970-01-01
相关资源
最近更新 更多