2

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

有什么方法可以确定设备是否仍然显示横向或纵向?我试过检查框架宽度,但它声称它是 768,即使设备平放在风景中也是如此。而且当设备变平时我无法强制定向,我听说那是 App Store 拒绝的道路。

4

2 回答 2

1

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

于 2012-06-28T14:12:50.527 回答
1

有一种方法可以检查它。

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

于 2015-12-12T09:06:36.293 回答