如何处理UIDeviceOrientationFaceUp和UIDeviceOrientationFaceDown?

Tre*_*zar 19 uidevice uiinterfaceorientation ios

这里有一个菜鸟问题.

我用以下方法检测方向:

UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];

一切都很好,花花公子,我根据报告的方向重新定位我的文本字段和标签

if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown)

而其他一切都是{}

我最近才发现的问题是当UIDevice报告UIDeviceOrientationFaceUpUIDeviceOrientationFaceDown.我该如何处理这种情况?我怎么知道是否UIDeviceOrientationFaceUpUIDeviceOrientationFaceDown纵向或横向是怎么回事?我知道设备正朝上或朝下,但我不知道是否应该将所有内容重新定位为纵向或横向.

谢谢!

Jus*_*ers 33

Apple建议不要使用设备方向进行视图布局.相反,每个视图控制器都有一个interfaceOrientation属性,并UIApplication具有statusBarOrientation属性,这两个属性都将返回当前的界面方向,这适用于视图布局.

要监视更改,有一些UIViewController方法,如willRotateToInterfaceOrientation:duration:将被调用,以及UIApplicationWillChangeStatusBarOrientationNotification等通知将在发生接口方向更改时发布.