我们有一个项目,在使用 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 上运行时才会发生这种情况。
有其他人看到过这种行为并知道根本原因可能是什么吗?
我发现了另一个关于堆栈溢出的问题,其中其他人也有完全相同的问题。他们的屏幕截图显示了我正在开发的应用程序在旋转时的精确渲染错位。这是另一个问题的链接。 (令人沮丧的是,似乎没有人回答这个问题,并且所有建议都没有给我解决方案。)
这是显示与我相同的错误的其他问题的链接:这是 iOS 8 Bug(旋转方向问题)吗? https://stackoverflow.com/questions/26523799/is-this-an-ios-8-bug-orientation-issue-on-rotation
我找到了问题的答案。我们的一位其他开发人员在尝试点击屏幕最右侧时注意到“主窗口中出现意外的零”。这导致我进行了一次新的搜索,我在 stackoverflow 上找到了这个线程,它实际上包含了我们问题的答案。
(这是帮助我回答问题的链接:_UIApplicationHandleEventFromQueueEvent 中出现意外的 nil 窗口 https://stackoverflow.com/questions/25963101/unexpected-nil-window-in-uiapplicationhandleeventfromqueueevent )
实际的答案来自 Frankish,他建议打开 main.xib(或主故事板)并单击其中的窗口,并确保选中“启动时可见”和“启动时全屏”属性(设置为 true。 )
在我们的例子中,只需设置“启动时全屏”属性,但设置此属性解决了我们所看到的旋转问题,并且解决了在 iPad 上横向启动时屏幕最右侧出现的问题。不可触摸。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)