CATiledLayer到CALayer

Gaz*_*dge 9 iphone cocoa uiview catiledlayer ios

我有一个CATiledLayer支持的视图.我想从这个CATiledLayer UIView中获取可见的tile,并将其作为CALayer支持添加到另一个视图中,从而在另一个不使用CATiledLayer的UIView中重新创建可见图像.

我想要这样做的原因是我将使用第二个UIView来掩盖更新CATiledLayer支持的UIView的效果 - 这会在重新加载所有切片时产生闪烁.

问题是,我不完全确定我会怎么做.有任何想法吗?

Poc*_*chi 3

CATiledLayer 是 CALayer 的子类,提供了一种异步提供图层内容图块的方法,可能以多个详细级别进行缓存。

您可以使用以下命令将图层中的可见内容渲染到 CGContextRef 中:

- (void)renderInContext:(CGContextRef)ctx
Run Code Online (Sandbox Code Playgroud)

然后使用它通过设置其委托并实现来更新您的其他层

- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)context 
Run Code Online (Sandbox Code Playgroud)

此处显示的 ss http://www.raywenderlich.com/2502/introduction-to-calayers-tutorial

但老实说,我认为这效率不高。