iOS 8 弹出框宽度 = 0 在 iPad 上仅在纵向模式下
Posted
技术标签:
【中文标题】iOS 8 弹出框宽度 = 0 在 iPad 上仅在纵向模式下【英文标题】:iOS 8 popover width = 0 on iPad in Portrait mode only 【发布时间】:2015-05-01 17:52:37 【问题描述】:我在 IB 中设置了一个非常简单的 UI 设计,其中分段控件调用 segue 以在 iPad 上显示弹出框。 segue 设置为“Present as popover”并有一个锚点。呈现的视图控制器是嵌入在导航控制器中的表格。
在我的 prepareForSegue 代码中,我只设置了标题。
呈现的视图控制器有一个定义为的preferredContentSize方法
- (CGSize)preferredContentSize
CGSize size;
if (self.traitCollection.userInterfaceIdiom == UIUserInterfaceIdiomPad)
size = CGSizeMake(600, 600);
else
size = CGSizeMake(320, 480);
return size;
这在 iPad 横向和 iPhone 纵向和横向(全屏)中都非常有效。但在 iPad 的纵向模式下,弹出框矩形是 左侧:0.000000,顶部:13.000000,宽度:0.000000,高度:31.000000。宽度为 0.0000 显然不会显示。
如果我在 iPad 上以横向模式显示弹出框,然后将其旋转为纵向,则弹出框仍然正确显示。
那么我做错了什么,弹出框的框架在纵向模式下被重置为零宽度?
【问题讨论】:
【参考方案1】:不幸的是,我遇到了与您描述的完全相同的问题。
iPad 横屏没问题 iPod/iPhone 都可以,任何方向都可以在 iPad 横向显示它并旋转到纵向可以正确显示弹出框。
我与您的唯一区别是我的弹出框在“viewDidAppear 处为我提供了一个 0,0,0, 13 "方法。
【讨论】:
以上是关于iOS 8 弹出框宽度 = 0 在 iPad 上仅在纵向模式下的主要内容,如果未能解决你的问题,请参考以下文章
iOS UITesting 如何关闭弹出框(iPad 弹出框不提醒样式)