如何确定用户的 iPhone 是不是处于纵向模式?

Posted

技术标签:

【中文标题】如何确定用户的 iPhone 是不是处于纵向模式?【英文标题】:How can I find out if a user has an iPhone in portrait mode?如何确定用户的 iPhone 是否处于纵向模式? 【发布时间】:2014-09-21 20:15:07 【问题描述】:

我仍然对 ios8 中的这些变化感到困惑。我需要知道用户是否在纵向模式下使用 iPhone。如果是这样,我想更改一个约束。否则,我将其保留为界面构建器中的设置。那么如何确定设备呢?

谢谢!

【问题讨论】:

您可以在界面生成器中定义这两个约束,iOS 会相应地在它们之间切换。我刚刚回答了一些非常相似的问题,在这里:***.com/questions/25962222/… 这似乎是我想要的。只有一个我不明白的问题:我怎样才能基本上采用相同的屏幕布局并且只更改 iPhone 屏幕的约束?现在,如果我更改它,我会为所有设备更改它:-/ 我不知道在哪里可以找到此复选框,以便在我的表视图控制器中安装视图的布局:-/ 您只需要在 iPhone 特定的屏幕布局中安装 iPhone 特定的约束。尝试在 xcode 中选择不同的屏幕布局选项,看看它们涵盖的内容。 约束的复选框位于不同的位置。我正在使用地点截图添加对这个问题的回答。 【参考方案1】:

选择您要为其定义屏幕布局的约束:

选择您需要安装约束的屏幕布局。

【讨论】:

几乎可以正常工作,谢谢。但是,如果我在我的紧凑/常规尺寸布局中为我的一个常规约束取消选择“已安装”,那么这个约束也会在其他布局中被删除并替换为仅适用于 iPhone 的特殊约束......我做错了什么?跨度> 您需要根据屏幕布局将它们标记为已安装/已卸载。 IE。 constraint1 应该安装在 CxR 中而不是 RxR 中,而 constraint2 应该安装在 RxR 中而不是 CxR 中【参考方案2】:

这个怎么样:UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation] ?

【讨论】:

你可能想要[UIApplication -statusBarOrientation]。 (你想要UIInterfaceOrientation 而不是UIDeviceOrientation。)

以上是关于如何确定用户的 iPhone 是不是处于纵向模式?的主要内容,如果未能解决你的问题,请参考以下文章

如何检测用户的 iPhone 6 Plus 是不是处于标准模式或缩放模式?

即使用户在横向模式下旋转他们的设备,是不是在 Gluon API 中保持我们的应用程序处于纵向模式?

我们如何检查iphone是不是处于待机模式?

如何检测 iOS 设备是不是处于静音模式?

当 iphone 设备方向朝上/朝下时,我可以判断它是横向还是纵向?

在 iPhone 中,键盘以纵向模式出现,而不是横向模式。有啥解决办法吗?