我有一个带有两个包含半静态内容的子层的CALayer。在渲染顶层时,我偶尔会继续渲染子层,而无需使用setNeedsDisplay安排更新。
我知道一个选项是创建委托类并实现drawLayer:inContext:
但我想立即使用renderInContext渲染子图层:但我不想渲染到父图层。
有没有办法可以切换或获取子图层的上下文以立即绘制到它们中?
答案 0 :(得分:2)
在保持“根”对象中的状态的同时进行绘制的机制是将根对象设置为将为其执行渲染的任何图层的委托。然后你应该在委托中实现drawLayer:inContext:。
请注意,除非您使用setNeedsDisplay询问图层,否则图层不需要重绘。因此,在您的情况下,将遍历您的状态并仅调用[layer setNeedsDisplay]
那些需要它的图层,反过来只有那些图层将调用drawLayer:inContext:。