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

4

大家好,

当我锁定屏幕方向时,我希望使用[[UIDevice currentDevice] orientation]来获取屏幕的方向。但它总是返回UIDeviceOrientationPortrait,所以我的问题是如何获取真实的设备方向。

非常感谢您的帮助。


你在模拟器上测试过吗?我相信只有在真实设备上才能得到精确的结果。 - Janak Nirmal
请访问以下链接:https://dev59.com/2nNA5IYBdhLWcg3wgeOk - Naveen Thunga
你可以参考这个所谓的问题并解决你的问题。https://dev59.com/Y3RB5IYBdhLWcg3wZmhz 希望能帮到你。 - Janak Nirmal
4个回答

1
请确保通过以下方式启用方向通知: [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 如果仍然无法正常工作,您还可以使用状态栏来确定当前方向(如果您的UI正在旋转),方法如下: [[UIApplication sharedApplication] statusBarOrientation];

0

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

您需要调用:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

然后,您可以检查设备的方向。为了节省电池,您需要告诉设备已完成获取方向的操作。可以通过以下方式调用:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];

就我个人而言,我更喜欢使用状态栏的方向。这是因为有时候(例如当设备平放在表面上时),设备的方向可能不是“横屏”或“竖屏”。


如果用户从Springboard锁定了设备方向,[[UIDevice currentDevice] orientation]将无法工作。方向始终是最后一个值,并且没有更改的通知。 - Jeff

0
如果你在模拟器上进行测试,要意识到模拟器无法准确返回方向数值。请在设备上进行测试。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接