如何找出uideviceorientationfaceup是景观面貌或肖像面的面貌?

有人可以告诉我吗?

有帮助吗?

解决方案

这是不可能的,因为加速度计无法检测到Z轴周围的旋转。在iPhone 4上,您可能可以使用陀螺仪(使用coremotion),但是 UIDevice 没有API。然后,您还必须定义起始位置是什么,因为您无法从设备的角度检测用户是哪个方向。

其他提示

UIDeviceOrientation 只会告诉您物理设备的方向。您需要使用使用的方法 UIInterfaceOrientation (从 UIApplication)决定取决于屏幕是否处于肖像和景观模式。

您可以使用 UIInterfaceOrientationIsLandscape()UIInterfaceOrientationIsPortrait()UIInterfaceOrientation 也。

我意识到这是一个古老的问题,但是看着每个人都过于学先的答案。如果其他人都偶然发现了这一点:

解决问题的答案是让您保留一个辅助变量,即您所接受的任何方向。

当设备方向通知进来时,只需查看传入方向,看看它是否可以接受,(肖像/景观不面对面/面向),然后更新您的次要变量,最后触发UI/App Refresh from二级刷新。变量作为方向源。

这将具有将方向锁定在“最后已知的良好”方向上的效果。

UideViceorientationFaceUp和UideViceOrientationFacedown是设备平坦(如表上)时的方向。在这种情况下,肖像和景观是没有意义的。

您无法从方向上找出。我找到了解决方法。

CGRect screenBounds = [[UIScreen mainScreen]bounds];

if(screenBounds.size.width > screenBounds.size.height)
{
    // This means FaceUP/Down is in Landscape
}
else
{
    // This means FaceUp/Down is in Portrait
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top