【问题标题】:iPhone lost all UI transition animationiPhone 丢失所有 UI 过渡动画
【发布时间】:2013-06-06 20:02:47
【问题描述】:

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

首先,应用程序会平稳运行,直到触发上述问题,之后只有重新运行应用程序或终止应用程序才能停止问题。

没有错误消息或任何线索可以让我弄清楚可能是什么原因。有没有人遇到过与上面类似的问题?请与我分享我如何解决上述问题。谢谢。

【问题讨论】:

  • 您是在模拟器上测试应用程序吗?
  • 是的...尝试重新启动您的 MAC :)
  • 你修复过这个错误吗?
  • @DavidvanDugteren 否...该错误是随机发生的,因此很难追查根本原因。我相信这个错误主要发生在旧 iPhone 中,例如 iPhone 4 和 4S。对于最新的 iOS,我再也没有遇到过这个问题。我的建议是,要非常小心,不要从后台线程更新任何 UI,因为这会对应用程序产生严重影响。此外,确保后台没有“挂起”或“循环运行”线程泄漏,因为这也会使 UI 变慢(冻结)。希望这会有所帮助。
  • 有同样的问题。 iPhone 6 plus(latest) 与最新的 iOS,所以不仅旧设备暴露在

标签: iphone ios objective-c user-interface


【解决方案1】:

每当尝试在后台线程上为视图设置动画时,整个应用的动画都可能会被禁用,例如通过从后台线程调用UIViewanimateWithDuration:animations: 系列类方法之一。请务必仅从主线程更新您的应用程序的 UI。

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

dispatch_async(dispatch_get_main_queue(), ^(void) {
    // Your code
});

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

【讨论】:

    猜你喜欢
    • 2012-02-08
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多