我的应用程序在 iOS6 中运行良好,但在一个未指定的即将发布的 iOS 版本中,由于 NDA 原因我无法命名,所有 UIViewController
过渡动画都停止工作。新 View 会立即出现。我不确定这个未指定的 future iOS 版本是否是原因,因为我在 iOS6 中偶尔会看到这种情况。
有时动画会开始工作一段时间然后不久就停止,这让我认为这是某种内存警告问题,但我的应用程序在大多数时间使用相当合理的 ~125MB 内存。任何人都可以提供任何建议或调查的事情吗?
最佳答案
所描述的行为一直存在:如果您在后台线程上工作,然后调用 UIKit 方法,那么更新通常会以一种奇怪的方式延迟。
正因为如此,您应该始终将 dispatch_async
放到主队列上以更新 UI。
这些错误很难捕获,因为它们的发生并不总是可预测的。
为了捕捉它们,我构建了一个方法来调配一些 UIKit 方法以检查它们是否在主线程上被调用。这允许您在忘记分派(dispatch)回主队列时停止在符号断点上。
https://github.com/Cocoanetics/DTFoundation/blob/develop/Core/Source/iOS/Debug/UIView%2BDTDebug.m
关于ios - UIViewController 动画停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18281097/