3

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

4

4 回答 4

0

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

于 2011-06-23T05:21:49.673 回答
0

根据文档,您需要先打开方向通知生成。

您需要致电:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

然后您可以检查设备的方向。您需要告诉设备您已完成方向,以节省电池电量。您可以通过调用:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];

就个人而言,我在使用状态栏的方向时运气更好。这是因为有时(例如,当设备平放在表面上时)设备方向不会是“横向”或“纵向”。

于 2011-06-23T05:22:18.210 回答
0

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

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

如果这仍然不起作用,您还可以使用状态栏通过以下方式确定当前方向(如果您的 UI 正在旋转):

[[UIApplication sharedApplication] statusBarOrientation];

于 2011-06-23T05:31:18.993 回答
0

Another solution could be detect orientation from CoreMotion library. It would fix a bug when Portrait Orientation Lock: On. Refer that article: http://codrspace.com/yuvirajsinh/device-orientation-detection-using-coremotion/

于 2015-05-26T07:19:28.510 回答