ios - 如何从父层绘制多个 CALayer 子层

标签 ios core-animation core-graphics calayer

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

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

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

最佳答案

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

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

关于ios - 如何从父层绘制多个 CALayer 子层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15955545/

相关文章:

iOS Swift4 没有请求 App 权限

ios - 如何在 Core Data 中获取对象引用?

iphone - 使用 CABasicAnimation 对圆的结束角度进行动画处理

ios - Swift 3 中的刮刮卡效果

ios - 如何创建仅 alpha 位图上下文

ios - UIGraphicsGetCurrentContext() : Should we put CGContext as function parameter

iOS 8 - 在恢复任务之前由 NSURLSessionDownloadTask 创建的带有fractionCompleted = 1.0 的 NSProgress 对象

ios - 无效更新 : invalid number of rows in section

ios - 有人可以解释一下 UIView 的奇怪旋转吗?

iphone - 依次运行 CABasicAnimation