ios - [UIDevice cuurentDevice].orientation 在 appDidBecomeActive 回调中返回以前的值

标签 ios device-orientation uideviceorientation

如果我通过按主页按钮将应用程序置于后台,然后更改设备方向并将应用程序置于前台,我仍然会在 [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/

相关文章:

css - 我应该如何划分 CSS 文件以支持多种设备?

ios - iPad 屏幕向后倾斜一定角度时出现错误 View

iphone - UIDeviceOrientationFaceUp - 如何区分纵向和横向?

ios - 如果使用链接的人下载了应用程序,我的 swift 应用程序是否可以链接到应用程序商店并将信息传递给应用程序?

ios - 相机和照片库权限 - 当用户不接受允许 iOS 10 时处理

ios - CoreData + Codable 不保存

ios - 合奏和 journal_mode ="DELETE"

Flutter Pageview 在方向变化时丢失索引

android - 使用适用于 Android 的 Adob​​e Air Mobile 顺畅地调整 View 以响应设备方向

iphone - 禁用以肖像 AVFoundation 以外的任何方向拍摄图像