【问题标题】:Building project with Xcode 6 (iOS 8 SDK) causes landscape rotation rendering issue on iPad使用 Xcode 6 (iOS 8 SDK) 构建项目会导致 iPad 上出现横向旋转渲染问题
【发布时间】:2015-03-25 19:46:46
【问题描述】:

我们有一个项目在使用 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)?

【问题讨论】:

  • 您可能希望向我们展示执行动画和相关类声明的代码,以帮助缩小 iOS API 中从 5.x 到 6.x 的更改范围。
  • 我不相信这是由任何自定义动画代码引起的。也就是说,这是我刚刚继承的一个大项目,我会继续挖掘。但是我遇到了其他人看到完全相同的渲染错误,所以我认为这是一个操作系统级别的错误。

标签: ios xcode ipad screen-rotation


【解决方案1】:

我找到了问题的答案。我们的一位开发人员在尝试点击屏幕最右侧时注意到“主窗口中出现意外的 nil”。这导致我进行了新的搜索,我在 stackoverflow 上找到了这个线程,它实际上包含了我们问题的答案。

(这里是帮助我回答的问题的链接:unexpected nil window in _UIApplicationHandleEventFromQueueEvent

实际答案来自 frankish,他建议打开 main.xib(或主情节提要)并单击其中的 Window 并确保选中“Visible at Launch”和“Full screen at Launch”属性(设置为真。)

在我们的例子中,需要设置的只是“启动时全屏”属性,但设置它解决了我们看到的旋转问题,并且解决了在 iPad 上以横向启动时最右边的问题屏幕不可触摸。

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 2013-02-23
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多