【问题标题】:Improving performance of Core Animation提高核心动画的性能
【发布时间】:2011-10-17 08:28:20
【问题描述】:

我已经构建了一个 UI,其中屏幕上的大部分内容都使用 CALayer 放置在那里。这些层的设置相当简单;大多数人都将图像设置为内容,而一对夫妇则有阴影。还有一些CALayer 的派生词,例如CATextLayerCAGradientLayer。在任何时候,屏幕上大约有 18 层。 11 层的内容经常变化(但不代表动画),同样的 11 可以向左或向右滚动,因为它们嵌入在 UIScrollView 中。

我注意到我的 3GS 和 4 的性能有点迟钝,所以我正在寻找调整我必须的方法以希望在一定程度上提高性能。

我已根据设备将rasterizationScale 设置为适当的比例,并将shouldRasterize 设置为YES

图像通过以下方式传递给层...

someLayer.contents = (id)someUIImage.CGImage

我还能做些什么来提高整体性能?

【问题讨论】:

    标签: iphone objective-c ios core-animation core-graphics


    【解决方案1】:

    最好的办法是使用您可用的分析工具来准确找出导致您速度变慢的原因。

    这个先前的答案比我说的更好: iOS / Core-Animation: Performance tuning

    【讨论】:

      【解决方案2】:

      您可以使用 CATiledLayer 而不是 CALayer,这将在单独的线程中渲染图像并且肯定会提高您的性能...

      【讨论】:

      • 我曾考虑过这一点,但我将如何处理用户交互? UIScrollView 中的层被包裹在 UIViews 中,以便我可以与它们交互。据我所知,使用CATiledLayer 是不可能的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多