CAReplicatorLayer背后的魔法是什么?

我觉得CAReplicatorLayer有趣:

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

我想获得源代码或获得一些关于CAReplicatorLayer背后魔法的知识。 我想有一个类似于CAReplicatorLayer的CALayer类,但有更多的控制权。 我想单独控制 每个复制实例 的转换

所以问一个完全不同的方式:是否有可能获得一个CALayer的“支持商店”,然后显示它,但我想要多less次?

(通过“支持存储”我的意思是为CALayer / UIView渲染的纹理。我不知道什么是在CoreAnimation / QuartzCore的引擎盖下发生了什么)。


为什么我没有在寻找替代品,例如将CALayer渲染为UIImage:

  • 性能
  • 在转换过程中,内容是dynamic/变化的
  • 这将是双手可怕的做它的另一种方式!

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