我发现 CAReplicatorLayer 的有趣之处:
- 它能够非常有效地多次显示具有不同转换的 CALayer(怎么做?)
- 它似乎以某种方式重用了复制层的“后备存储”,甚至对其应用了一些颜色(如何?)
我想接触源代码或了解 CAReplicatorLayer 背后的魔法。我想要一个类似于 CAReplicatorLayer 的 CALayer 类,但有更多的控制。我想对每个复制实例单独控制转换。
所以以完全不同的方式问: 是否可以获取 CALayer 的“后备存储”并根据需要多次显示它?
(我所说的“后备存储”是指 CALayer/UIView 的渲染纹理。我不太了解 CoreAnimation/QuartzCore 背后发生的事情)。
为什么我不考虑替代方案,例如将 CALayer 渲染为 UIImage:
- 表现
- 内容是动态的/在转换过程中经常变化
- 如果换一种方式去做,那就太棒了!
最佳答案
特殊用途的 CALayer,如 CAReplicatorLayer 或 CAGradientLayer 能够(通过私有(private) API)使用快速填充或复制直接在 GPU 上执行它们的绘图。从某种意义上说,它们是不同的,因为后备存储不在普通 RAM 中,而是直接在 GPU 上。
关于ios - CAReplicatorLayer 背后的魔力是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13841463/