【问题标题】:Are multiple UIView animation callbacks a bad idea (i.e. cause mem issues)?多个 UIView 动画回调是一个坏主意(即导致内存问题)吗?
【发布时间】:2010-12-18 18:56:34
【问题描述】:

我的应用中有多个 UIView 动画正在运行。它们非常短,然后对通常触发另一个动画的方法进行回调。这会导致很多小动画同时运行,每个动画都会触发回调。

这实际上表现得非常好,并且对于前几个级别(应用程序是一个游戏),没有观察到任何问题。但是,随着您继续深入游戏,我开始收到内存警告并最终崩溃。我已将 NSLog 放入我所有的 dealloc 方法中,因此我可以看到所有内容都已正确释放和 dealloc'd。我还对应用程序进行了静态分析并修复了它发现的所有内容。

对我来说奇怪的是:运行多个动画引起的任何性能问题不应该是处理器绑定的(即我不应该看到一堆减速等)吗?似乎一切都运行得很好,只是内存太快了,我没有什么可以释放的了。 UIView 方面的框架中是否存在需要大量内存来执行这些操作的东西?执行这些操作时我需要避免的框架中是否存在泄漏?

附加说明:我正在为一个扩展 UIView 的自定义类制作动画,其中包含一个标签和一个 UIImageView。

【问题讨论】:

    标签: iphone performance memory-management animation uiview


    【解决方案1】:

    多个动画不应引起内存警告..

    我建议您应该运行 Instruments for Leaks、ObjectAlloc 和 CPU 采样器。 这将比dealloc 中的NSLogs 提供更好的视图

    【讨论】:

    • 看起来多个动画效果很好。你是对的 - 我在制作动画的自定义视图中有一些东西被错误地分配/释放并导致泄漏。我确信我的类被正确地释放了(而且确实如此),但我错过了我在这个过程中泄露了一些核心 UI 类。
    【解决方案2】:

    您没有显示任何代码,因此很难给出具体建议,但是,您是否考虑过使用 Core Animation 层而不是 UIViews?如果您需要动画文本,则必须使用视图,因为手机上没有 CATextLayer,但是,Core Animation 提供了在 2d 空间中绘制复杂精灵的工具,使其成为许多游戏的理想选择。

    最好的问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 2014-05-21
      • 1970-01-01
      相关资源
      最近更新 更多