1

我有一个带有两个包含半静态内容的子图层的 CALayer。在渲染顶层时,我偶尔会继续渲染子层,而不用 setNeedsDisplay 安排更新。

我知道一种选择是创建委托类并实现drawLayer:inContext:,但我想立即渲染子层,也许使用 renderInContext: 但我不想渲染到父层。

有没有办法可以切换或获取子层的上下文以立即绘制到它们中?

4

1 回答 1

2

在保持“根”对象中的状态的同时进行绘制的机制是将根对象设置为它将为其进行渲染的任何层的委托。然后你应该在委托中实现 drawLayer:inContext:。

请注意,除非您使用 setNeedsDisplay 要求图层,否则不需要重绘图层。因此,在您的情况下,将遍历您的状态并仅调用[layer setNeedsDisplay]那些需要它的层,而反过来只有这些层会调用 drawLayer:inContext:。

于 2013-04-16T13:01:27.820 回答