不使用ipad 4.3的UIActionSheet上的UIDatePicker

时间:2012-09-13 00:08:58

标签: objective-c ipad ios4 uipickerview uiactionsheet

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

此代码在ipad和iphone 5上运行良好,iphone 4.3也很喜欢它。 ipad 4.3根本不起作用。这种行为很奇怪。 PickerView也是 没有出现(只有标题在顶部,如“小时”和“最小”)。或者它 在左侧显示为10像素宽的块,但无法与其交互或使用它。

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

提前致谢 - 凯文

popover with just headings

popover with side widget oddity

// 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 个答案:

答案 0 :(得分:1)

UIActionSheets仅适用于按钮。即使他们在iPhone上添加日期选择器,他们也无法在iPad上工作。如果要继续使用操作表来保存datePicker,则需要创建自定义视图或在popOver中显示视图。

我遇到了同样的问题。