ios - 在 iOS 11 中切换任务时出现虚假旋转事件

标签 ios objective-c ipad

当您在 iPad 上使用 4 指任务切换手势切换离开后返回到我的应用程序时,它会崩溃。

当用户使用 4 指手势离开我的应用程序时,我会在我的应用程序委托(delegate)中看到 applicationWillResignActive: 然后是 applicationDidEnterBackground:,然后(假设我们' re currently in portrait orientation)我的顶级 View Controller 获取 viewWillTransitionToSize:withTransitionCoordinator: 其大小指示横向布局(即使设备没有旋转)。这当然会导致针对新方向的大量调整大小和重新排列 View 。紧接着我得到 viewWillTransitionToSize:withTransitionCoordinator: 的大小表示纵向(设备的原始方向)。然后,我再次检查所有布局以获得新的(实际上是原始的)方向。

我发现,如果我等待所有这些完成,我可以整天切换进和退出我的应用程序。另一方面,如果我在进行这些不必要的工作时切换回我的应用程序,我会在某些 iOS 转换代码中陷入深深的崩溃。

在这一点上,我试图理解为什么我会收到这些杂散旋转事件。如果我能避免得到这些,我就可以避免陷入导致崩溃的任何情况。它们似乎没有必要。

最佳答案

我想不出在后台获取 viewWillTransitionToSize 有用或正确的原因,所以如果您 在后台,就跳出:

if UIApplication.shared.applicationState == .background {
    return
}

不过,这感觉像是一个错误,我认为你应该向 Apple 报告它。

关于ios - 在 iOS 11 中切换任务时出现虚假旋转事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47241887/

相关文章:

ios - 在 JSON 字符串中添加反斜杠 "\"用于 swift 中的 Web 服务

objective-c - 以编程方式滚动 UIScrollView

iphone - 拦截所有触摸事件

ios - 如何调整图像大小并避免图像模糊?

objective-c - 旋转 Ipad 时动画 View 转换

ios - Xcode7 Swift - iPad App NavigationItem 标题不显示

ios - 我可以在 iTunes 中发布具有不同名称和图标的应用程序,并在应用程序中发布具有不同名称和图标的应用程序吗?

objective-c - 如何在 Objective-C 中创建数字数组?

iphone - ExtAudioFileWrite 到 m4a/aac 在双核设备(ipad 2、iphone 4s)上失败

iOS:renderInContext 以 -90 度渲染窗口的内容?