iPhone失去了所有UI过渡动画

6

目前我遇到了一个问题,应用程序失去了所有那些艺术化的UI动画,例如翻页、警告视图弹出、操作表滑动等等。这意味着所有这些UI将立即显示出来,没有任何转换动画。看起来非常奇怪。

首先,应用程序会平稳地运行,直到某些事情触发了上述问题,之后只重新运行应用程序或杀掉应用程序才能停止这个问题。

没有错误消息或任何线索可以让我找出原因。你们中有没有人遇到过类似的问题?请与我分享如何解决上述问题。谢谢。


你在模拟器上测试应用程序吗? - IronManGill
是的...尝试重新启动您的MAC :) - TonyMkenu
你修复过这个 bug 吗? - David van Dugteren
@DavidvanDugteren 不...这个bug是随机发生的,所以很难追踪到根本原因。我相信这个bug主要发生在旧的iPhone上,例如iPhone 4和4S。对于最新的iOS,我再也没有遇到过这个问题。我的建议是非常小心,不要从后台线程更新任何UI,因为这会对应用程序产生严重影响。此外,请确保没有“挂起”或“循环运行”的线程泄漏在后台,因为这也会使UI变慢(冻结)。希望这可以帮助到你。 - Sam YC
有同样的问题。iPhone 6 Plus(最新款)搭载最新的iOS,因此不仅旧设备会受到影响。 - Olex
1个回答

1
当尝试在后台线程上通过调用UIViewanimateWithDuration:animations:系列类方法之一来动画化视图时,可能会禁用整个应用程序的动画。请务必仅从主线程更新应用程序的UI。您可以通过测试[NSThread currentThread].isMainThread来检查代码是否在主线程上运行,并确保它在主线程上运行,如下所示:
dispatch_async(dispatch_get_main_queue(), ^(void) {
    // Your code
});

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接