当您在 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/