我们的应用程序由Cocos3D和AR组成。由于升级到iOS 8,我们必须修复Apple定位处理,因为苹果给我们带来了变化。iOS 8和UIScreen尺寸问题
但是,我们仍然遇到一些问题,导致我一个颇为有趣的现象(我检查它在我们的应用程序,并在一个全新的项目。):
记录的[UIDevice currentDevice].orientation
,[UIApplication sharedApplication].statusBarOrientation
和[UIScreen mainScreen].bounds.size
表明,当该装置快速旋转,设备的方向实际上改变,但接口的方向有时会保持不变,并导致屏幕边界的计算错误......例如:
旋转之前10
[UIDevice currentDevice].orientation = 1
[UIApplication sharedApplication].statusBarOrientation = 1
[UIScreen mainScreen].bounds.size = 414x736
第一次旋转后:
[UIDevice currentDevice].orientation = 4
[UIApplication sharedApplication].statusBarOrientation = 4
[UIScreen mainScreen].bounds.size = 736x414
2旋转后:
[UIDevice currentDevice].orientation = 1
[UIApplication sharedApplication].statusBarOrientation = 4
[UIScreen mainScreen].bounds.size = 736x414
现在很明显,第二旋转后,该设备是早在肖像模式 - 也没有根据界面方向和屏幕边界...
我在这里错过了什么吗?
你在哪里登录结果?我的意思是你用哪种方法调用NSLog。 – LoVo 2015-04-02 07:33:56
为'UIDeviceOrientationDidChangeNotification'添加了一个观察者,导致一个名为'orientationDidChange'的方法(我的方法) – GalSab 2015-04-02 07:38:04
UIDeviceOrientation并不总是UIInterfaceOrientation。例如,当您的设备在普通桌面上时,您可能会收到意外的值。 – LoVo 2015-04-02 07:41:23