在 iPhone 6+ 上仅纵向显示 UIPopover
Posted
技术标签:
【中文标题】在 iPhone 6+ 上仅纵向显示 UIPopover【英文标题】:Showing UIPopover on iPhone 6+ only in portrait 【发布时间】:2014-12-05 17:04:19 【问题描述】:所以我试图找出在 iPhone 6+ 上纵向显示弹出框的最简单的方法,同时在 5s 和 6 上保持模态显示样式。
Using size classes is not an option 显然,因为没有办法区分 6+ 和其他人的肖像。
I'm also aware that Apple uses size classes to differentiate the layout only in landscape, using autolayout for the portrait.
我可以一直显示popovers all the time 或模态,除了风景6+。
我想要的是在 6+ 和模态框上显示弹出框。 除了做某事like detecting 6+,我能做到的最适应的方式是什么?
谢谢!
【问题讨论】:
【参考方案1】:NSString *model = [[UIDevice currentDevice] model]
UIDeviceOrientation *orient = [[UIDevice currentDevice] orientation]
If(model != @"6" || orient != UIDeviceOrientationLandscape )
//show popup
【讨论】:
这仍然包括让我查看我是否在特定设备上的逻辑,并且我正在寻找一种更通用的方法来区分 6+ 与其他设备,如果可能的话。感谢您的建议,如果没有其他问题,我可能会采用类似的方法。注意:模型是一个字符串,不能与整数进行比较。 你可以在 AS3 中大声笑。但是您要问的是一种无需检查即可确定模型是否大于 6 的方法。这没有任何意义......你必须检查模型。更“通用”的方法会是什么样子?最多你可以将所有这些抽象成一个 Utils 类并让它处理模型检测,例如返回 Bool 的 Utils.versionAbove6。但除此之外,我不知道你在寻找什么?无需编写任何代码就可以神奇地知道编译器?!大声笑 实际上我可能错过了关于特征集合的一些内容。它们和大小类的全部意义在于避免检查您是否在特定设备上运行。此外,当您编辑答案时,您正在使用具有未定义行为的 如果您使用自动布局,尺寸类会处理这个问题,但您仍然必须单独为每个尺寸类设计约束,自动布局只会为您检查。但是使用自动布局和程序化视图类设计可能真的有问题,我通常坚持一个或另一个(我有两个故事板,一个使用自动布局,一个不使用)。如果您在代码中检查模型,则需要使用上述方法。如果您想对弹出窗口的行为进行编程,我认为自动布局不会对您有所帮助。以上是关于在 iPhone 6+ 上仅纵向显示 UIPopover的主要内容,如果未能解决你的问题,请参考以下文章
支持 iPhone 6 和 iPhone 6+,针对 iPad 纵向和横向方向具有不同的启动/启动屏幕图像
如何在Iphone +上仅将表格视图自定义单元格的左上角和右上角半径转角