我有一个 CALayer,它有两个包含半静态内容的子层。在渲染顶层时,我偶尔想继续渲染子层,而不用使用 setNeedsDisplay 安排更新。
我知道一种选择是创建委托(delegate)类并实现 drawLayer:inContext:
但我想立即渲染子层,也许使用 renderInContext: 但我不想渲染到父层.
有没有一种方法可以切换或获取子层的上下文以立即绘制到它们中?
最佳答案
在保持“根”对象状态的同时进行绘图的机制是将根对象设置为它将为其进行渲染的任何层的委托(delegate)。然后你应该在委托(delegate)中实现 drawLayer:inContext: 。
请注意,除非您使用 setNeedsDisplay 要求,否则图层不需要重绘。因此,在您的情况下,将循环遍历您的状态并调用 [layer setNeedsDisplay]
只有那些需要它的层,然后只有那些层会调用 drawLayer:inContext:。
关于ios - 如何从父层绘制多个 CALayer 子层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15955545/