iOS面朝上定位问题

时间:2012-06-28 14:10:18

标签: objective-c ios xcode orientation

当设备坐在桌子上时,有没有办法区分横向和纵向,即UIDeviceOrientationFaceUp?我有两个不同的xib文件,我根据用户持有设备的方式切换。但是当我将设备放在横向设备中然后放下设备时,问题就出现了。设备保持横向,但会加载纵向xib文件。问题是相反的,如果在我的编码中我将UIDeviceOrientationFaceUp与横向方向耦合:那么我将使用我的横向视图显示设备何时仍处于纵向状态。

有没有办法弄清楚设备是否仍在显示横向或纵向?我已经尝试检查框架宽度,但它声称它是768,即使设备平放在风景中。当设备变平时我无法强制定位,我听说在App Store上有拒绝之路。

2 个答案:

答案 0 :(得分:1)

你做不到。加速度计无法判断用户放在桌子上时手机的哪一侧。您可以使用陀螺仪(和指南针)测量绕其轴的旋转,但仍然不能告诉您不幸的用户在哪里。

答案 1 :(得分:1)

有一种方法可以检查它。

UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice] orientation]; UIInterfaceOrientation statusBarOrientation =[UIApplication sharedApplication].statusBarOrientation; 使用第一个检查设备是否正面朝上,第二个将告诉您设备是纵向还是横向。