我们有一个项目,在使用 Xcode 5.1.1 (iOS sdk 7.2) 构建时表现符合预期,但在使用 Xcode 6.2 (iOS sdk 8.2) 构建时,iPad 上出现旋转渲染问题。在 iPad 上,我们的应用程序仅支持横向左和横向右。当您从一个旋转到另一个时,在旋转动画中,屏幕会从上下颠倒旋转到右侧向上,但当它这样做时,它会落在错误的位置。 (屏幕的左下角从底部向上大约 200 像素,从左侧插入相同数量的像素。)
这也可能发生在 iPhone 上,但在 iPhone 上我们仅支持纵向,因此旋转不是问题。
另外一条信息,如果我使用 Xcode 6 构建但在装有 iOS 7 的 iPad 上运行,则没有问题。仅当我使用 Xcode 6 构建并在装有 iOS 7 的 iPad 上运行时才会发生这种情况。
有其他人看到过这种行为并知道根本原因可能是什么吗?
我发现了另一个关于堆栈溢出的问题,其他人也有完全相同的问题。他们的屏幕截图显示了我正在开发的应用程序在旋转时的精确渲染错位。这是另一个问题的链接。 (令人沮丧的是,似乎没有人回答这个问题,并且所有建议都没有给我解决方案。)
以下是其他问题的链接,显示了与我相同的错误: Is this an iOS 8 Bug (orientation issue on rotation)?
最佳答案
我找到了问题的答案。我们的一位开发人员在尝试点击屏幕最右侧时注意到“主窗口中出现意外的 nil”。这促使我进行了新的搜索,我在 stackoverflow 上找到了这个线程,它实际上包含了我们问题的答案。
(这里是帮助我回答问题的链接:unexpected nil window in _UIApplicationHandleEventFromQueueEvent)
实际答案来自 frankish,他建议打开 main.xib(或主 Storyboard)并单击其中的窗口并确保选中“启动时可见”和“启动时全屏”属性(设置为真。)
在我们的例子中,它只是需要设置“启动时全屏”属性,但设置这个解决了我们看到的旋转问题并且它解决了在 iPad 上以横屏模式启动时最右边的问题屏幕不可触摸。
关于ios - 使用 Xcode 6 (iOS 8 SDK) 构建项目会导致 iPad 上的横向旋转渲染问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265118/