iPhone失去了所有UI过渡动画

GMs*_*soF 6 iphone user-interface objective-c ios

目前我遇到了一个问题,应用程序丢失了所有那些艺术UI动画,例如页面翻转,警报视图弹出,动作表向上滑动等等.这意味着所有这些UI将立即显示而没有任何过渡动画.看起来很奇怪.

首先,应用程序将运行顺利,直到事情触发上面的问题,之后只重新运行应用程序或终止该应用将停止的问题.

没有错误信息或任何线索我可以弄清楚可能是什么原因.你们中的任何一个人遇到过类似的问题吗?请与我分享我如何解决上述问题.谢谢.

joh*_*gan 1

每当尝试在后台线程上对视图进行动画处理时,例如通过从后台线程调用类方法系列UIView之一,整个应用程序的动画可能会被禁用。animateWithDuration:animations:请务必仅从主线程更新应用程序的 UI。

您可以通过测试检查代码是否在主线程上运行[NSThread currentThread].isMainThread,并且可以确保它在主线程上运行,如下所示:

dispatch_async(dispatch_get_main_queue(), ^(void) {
    // Your code
});
Run Code Online (Sandbox Code Playgroud)

或者,确保您没有[UIView setAnimationsEnabled:NO]在任何地方调用,因为这也会禁用整个应用程序的动画。