18

我发现 CAReplicatorLayer 的有趣之处:

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

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

所以以完全不同的方式问:是否有可能获得 CALayer 的“后备存储”并显示它,但是我想要多少次?

(“后备存储”是指 CALayer/UIView 的渲染纹理。我对 CoreAnimation/QuartzCore 的幕后发生的事情知之甚少)。


为什么我不考虑诸如将 CALayer 渲染到 UIImage 之类的替代方法:

  • 表现
  • 内容是动态的/在过渡下经常变化
  • 以另一种方式做到这一点将是非常棒的!
4

1 回答 1

9

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

于 2012-12-13T06:12:03.530 回答