【发布时间】:2014-01-29 12:38:13
【问题描述】:
我有一个应用程序,我打算在用户旋转 iPad 时更改屏幕方向。在我的应用中,我有几个弹出框。
我担心的潜在问题是我的弹出框之一覆盖了大部分屏幕,因此如果旋转发生变化,我希望弹出框更改视图尺寸。是否可以在视图打开时关闭它并重新打开它。
谢谢
【问题讨论】:
标签: ios objective-c ipad popover uipopover
我有一个应用程序,我打算在用户旋转 iPad 时更改屏幕方向。在我的应用中,我有几个弹出框。
我担心的潜在问题是我的弹出框之一覆盖了大部分屏幕,因此如果旋转发生变化,我希望弹出框更改视图尺寸。是否可以在视图打开时关闭它并重新打开它。
谢谢
【问题讨论】:
标签: ios objective-c ipad popover uipopover
如果您使用 UIPopoverController,它的标准行为是在您旋转时隐藏弹出框。它会尝试为您重新定位它,这往往不起作用,因此您想使用 popoverController:willRepositionPopoverToRect:inView 设置新位置并根据需要调整大小。
如果您使用 setPopoverContentSize:animated: 它会为您重新调整大小,如果您使用自动布局,您将希望在内容视图控制器中使用 preferredContentSize。
如果用户在弹出框可见时旋转设备,则弹出框 控制器隐藏弹出框,然后在结束时再次显示 回转。弹出框控制器尝试定位弹出框 适合您,但您也可以实施 popoverController:willRepositionPopoverToRect:inView: 中的方法 popover 委托指定一个新的位置。
【讨论】: