我正在尝试设置一个弹出窗口,当我按下按钮时显示UIDatePicker,但是我得到了一些非常令人困惑的行为。我创建了一个视图控制器,它只包含UIDatePicker,在我需要它的类中连接一个,然后将它添加到一个新的UIPopoverController中:
self.timePickerPopoverController = [[UIPopoverController alloc] initWithContentViewController:self.timePickerViewController];
然后我这样呈现:
[timePickerPopoverController presentPopoverFromRect:prepTimeButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
(prepTimeButton是按下的按钮)。但是,我得到以下结果:
而不是显示在按下的按钮和目标尺寸旁边(它现在太高了;应该只是日期选择器的大小)。我也尝试给它一个自定义视图,显示正确的位置和大小,但这没有多大帮助(只是将popover移动到屏幕的右半部分)。我做错了什么,如何解决?
答案 0 :(得分:1)
self.view
是prepTimeButton
的直接超级视图吗?也许prepTimeButton
嵌套在子视图中,在这种情况下,您需要将其用作inView:
参数(或转换坐标)。
您是否设置了视图控制器的contentSizeForViewInPopover
属性?
答案 1 :(得分:0)
确保在内部视图控制器上设置contentSizeForViewInPopover
,在popoverContentSize
上设置UIPopoverController
。