【问题标题】:Showing UIPopover on iPhone 6+ only in portrait在 iPhone 6+ 上仅纵向显示 UIPopover
【发布时间】: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+,我能做到的最适应的方式是什么?

谢谢!

【问题讨论】:

    标签: ios ios8 uipopovercontroller


    【解决方案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。但除此之外,我不知道你在寻找什么?无需编写任何代码就可以神奇地知道编译器?!大声笑
    • 实际上我可能错过了关于特征集合的一些内容。它们和大小类的全部意义在于避免检查您是否在特定设备上运行。此外,当您编辑答案时,您正在使用具有未定义行为的
    • 如果您使用自动布局,尺寸类会处理这个问题,但您仍然必须单独为每个尺寸类设计约束,自动布局只会为您检查。但是使用自动布局和程序化视图类设计可能真的有问题,我通常坚持一个或另一个(我有两个故事板,一个使用自动布局,一个不使用)。如果您在代码中检查模型,则需要使用上述方法。如果您想对弹出窗口的行为进行编程,我认为自动布局不会对您有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 2015-01-19
    相关资源
    最近更新 更多