【问题标题】:Performance Gain Using Multiple CALayers in One UIVew在一个 UIVew 中使用多个 CALayers 获得性能提升
【发布时间】:2011-02-13 10:17:22
【问题描述】:

我正在编写一个简单的 2D 游戏,目前该游戏在每次更新时都会为多个精灵进行相当多的自定义绘图 - 即我有游戏视图委托给所有精灵来执行石英渲染(点/线基于)每次更新。

在渲染大约 50 个活动对象时,我的性能还可以,但现在事情开始变慢,所以我正在寻求优化。为此,我决定将我的精灵预渲染到 CALayer,然后将其添加到游戏视图中。

我的第一个想法是给每个 Sprite 实例一个 CALayer,它作为子层添加到 GameView 的 view.layer 中。这意味着我使用具有多个 CALayers 的单个 UIView - 每个游戏精灵一个。

如果我决定为每个游戏精灵使用 UIView,性能损失是否可以忽略不计?

【问题讨论】:

    标签: iphone core-animation quartz-graphics


    【解决方案1】:

    UIViews 是响应者链的一部分,会增加额外的开销。我从精灵的 UIViews 开始,发现手势变得迟缓。 我建议坚持使用 CALayers

    【讨论】:

      【解决方案2】:

      据我所知,UIViews 是围绕CALayer 的非常轻量级的包装器,因此性能损失应该不会太大。但我认为一个精灵最好用CALayer 的实例来表示,而不是UIView

      【讨论】:

        猜你喜欢
        • 2011-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-30
        • 1970-01-01
        • 2015-03-17
        • 2012-01-15
        • 1970-01-01
        相关资源
        最近更新 更多