CAReplicatorLayer背后的魔力是什么?

hfo*_*sli 18 core-animation calayer ios careplicatorlayer quartz-core

我发现有趣的CAReplicatorLayer:

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

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

所以以一种完全不同的方式问道:是否有可能获得CALayer的"后备商店"并显示它,但我想要多次我想要?

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


为什么我不看其他替代方案,例如将CALayer渲染为UIImage:

  • 性能
  • 在转换过程中,内容是动态的/经常变化的
  • 从另一个方面做到这一点真是令人敬畏!

Coc*_*ics 9

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