CAReplicatorLayer背后的魔力是什么?

时间:2012-12-12 14:01:21

标签: ios core-animation calayer quartz-core careplicatorlayer

我对CAReplicatorLayer感兴趣的是:

  • 能够非常有效地多次显示不同变换的CALayer(如何?)
  • 似乎它以某种方式重复使用复制图层的“后备存储”,甚至为它应用了一些颜色(如何?)

我想了解源代码或了解CAReplicatorLayer背后的魔力。我想有一个类似于CAReplicatorLayer的CALayer类,但有更多的控制权。我想对每个复制的实例单独控制转换

以完全不同的方式问道: 有没有可能获得CALayer的“后备商店”并显示它,但我想要多次我想要?

(通过“支持商店”我的意思是CALayer / UIView的渲染纹理。我不太了解CoreAnimation / QuartzCore引擎盖下发生了什么。)


为什么我不会选择像将CALayer渲染为UIImage:

  • 性能
  • 内容在过渡期间非常频繁/频繁变化
  • 以其他方式做到这一点真是令人敬畏!

1 个答案:

答案 0 :(得分:8)

像CAReplicatorLayer或CAGradientLayer这样的专用CALayers能够(通过私有API)使用快速填充或复制直接在GPU上执行绘图。从某种意义上说,它们是不同的,因此后备存储不在普通RAM中,而是直接在GPU上。