在 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 Plus 上的方向不正确?

支持 iPhone 6 和 iPhone 6+,针对 iPad 纵向和横向方向具有不同的启动/启动屏幕图像

如何在Iphone +上仅将表格视图自定义单元格的左上角和右上角半径转角

支持iPhone 6和iPhone 6+,具有不同的启动/启动屏幕图像,适用于iPad纵向和横向方向

单词拼写提示工具提示纵向纵向显示

iPhone 6 Plus 上的 UISplitViewController 旋转大师大师