UIActionSheet 上的 UIDatePicker 不适用于 ipad 4.3

Posted

技术标签:

【中文标题】UIActionSheet 上的 UIDatePicker 不适用于 ipad 4.3【英文标题】:UIDatePicker on a UIActionSheet not working with ipad 4.3 【发布时间】:2012-09-13 00:08:57 【问题描述】:

我一直在浏览论坛,找不到这个问题的答案,所以我发帖了。我有几个应用程序使用带有 UIPickerView 或 UIDatePickerView 的 UIActionSheet 来提示用户输入。这些输入用于配置值。所以提示出现在 ipad 的弹出框之上。

此代码在 ipad 和 iphone 5 上运行良好,iphone 4.3 也很喜欢它。 ipad 4.3 根本不工作。行为很奇怪。 PickerView 要么 不出现(只有顶部的标题,如“小时”和“分钟”)。或者它 在左侧显示为一个 10 像素宽的块,无法与之交互或使用它。

截图和代码如下。有任何想法吗? 下面的代码生成第一个屏幕截图外观。 第一个屏幕截图代码几乎相同,但使用 UIPickerView 这些是从模拟器中截取的,但我有用户在他们的物理设备上报告了同样的问题。

提前致谢 - 凯文

// create enough space for the UIPicker to show up above the selection button
NSString *title = @"\n\n\n\n\n\n\n\n\n\n\n\n";
if ((UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) && 
    (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad)) 
    title = @"\n\n\n\n\n\n\n\n\n";



UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:title delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:NSLocalizedString(@"Choose", @"Click to finilize Value - Timer"), nil];
[actionSheet showInView:self.view];

UIDatePicker *pickerView = [[UIDatePicker alloc] init];
[pickerView setDatePickerMode: UIDatePickerModeCountDownTimer];
if (timerInterval == 0) timerInterval = 5;
[pickerView setMinuteInterval: timerInterval];
[pickerView setCountDownDuration: [timerRec.timerDuration intValue]];
[actionSheet addSubview:pickerView];

【问题讨论】:

【参考方案1】:

UIActionSheets 仅用于按钮。即使它们可以在 iPhone 上添加日期选择器,但它们不能在 iPad 上工作。如果您想继续使用操作表来保存 datePicker,则需要创建自定义视图或在 popOver 中显示您的视图。

我遇到了同样的问题。

【讨论】:

嗯...感谢您的反馈。如前所述,我一直在 ipad 上使用此功能,在新的 ios 版本中没有任何问题。我将它显示为一个弹出框内的 UIActionSheet。所以这可能就是我逃避它的原因。但我会研究你建议的其他选项。谢谢。

以上是关于UIActionSheet 上的 UIDatePicker 不适用于 ipad 4.3的主要内容,如果未能解决你的问题,请参考以下文章

iPad 上的 UIActionSheet backGroundColor

UIActionSheet 上的 UIDatePicker 不适用于 ipad 4.3

UIActionSheet 搞砸了 iPad 上的抖动检测(motionBegan:delegate)

UIActionSheet showInView 上的 iPad NSInternalInconsistencyException

UIActionSheet 在 UIPopoverController 中有 20 多个选项

UIActionSheet iOS 8 错误