如果我通过按主页按钮将应用程序置于后台,然后更改设备方向并将应用程序置于前台,我仍然会在 [UIDevice currentDevice].orientation 中获得先前的设备方向值。
例如,我将设备保持在默认方向,将应用程序带到后台并将设备旋转到 UpsideDown 方向,然后将应用程序带到前台,设备方向在被查询时仍然是默认值。仅在一段时间后,才会调用 beginDeviceOrientationEvents 的监听器并提供正确的值。
所以我想问一下,在应用重新启动时,首先应该在哪里获取 deviceOrientation 的正确值?
最佳答案
使用[[UIDevice currentDevice] orientation]
(如 described in the docs )在您的应用程序委托(delegate)的 applicationDidBecomeActive
中方法。
更新
事实上,[[UIApplication sharedApplication] statusBarOrientation]
可能更有用,因为返回的值考虑了您已将应用程序设置为兼容的方向。
关于ios - [UIDevice cuurentDevice].orientation 在 appDidBecomeActive 回调中返回以前的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9665829/