如何获得真实设备的方向?

时间:2011-06-23 05:18:07

标签: iphone objective-c orientation uidevice

全部,
   当我锁定屏幕方向时,我想使用 [[UIDevice currentDevice] orientation] 来获取屏幕的方向,但它总是返回 UIDeviceOrientationPortrait ,所以,问题是我怎么能得到真实设备的方向。
非常感谢你。

4 个答案:

答案 0 :(得分:0)

如果您在模拟器中进行测试,请注意模拟器在返回准确的方向值时非常糟糕。在设备上测试。

答案 1 :(得分:0)

您需要先按the documentation打开方向通知生成。

您需要致电:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

然后您可以检查设备的方向。您需要告诉设备您已完成定位,以节省电池电量。您可以致电:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];

就个人而言,using the status bar's orientation我的运气更好。这是因为有时(例如,当设备在表面上是平的时),设备方向将不是“横向”或“纵向”。

答案 2 :(得分:0)

确保您通过以下方式启用方向通知:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

如果仍然无效,您还可以使用状态栏通过以下方式确定当前方向(如果您的用户界面正在旋转):

[[UIApplication sharedApplication] statusBarOrientation];

答案 3 :(得分:0)

另一种解决方案是检测CoreMotion库的方向。当Portrait Orientation Lock:On时,它会修复一个错误。 请参阅该文章:http://codrspace.com/yuvirajsinh/device-orientation-detection-using-coremotion/