Layer适用与下面这些情况:
- 高质量的你想重用的屏幕外绘制。比如,你想创建一个计划重用的场景。把场景绘制到Layer上,然后绘制Layer到你想绘制的地方。一个额外的好处是,绘制一个图层你不需要知道颜色空间或者设备相关的信息。
- 重复绘制。比如,你想创建一个有相同元素一遍一遍组成的图案。把元素绘制到一个图层,然后重复绘制这个图层。如果你把CGPath、CGShading、等Quartz对象绘制到CGLayer上的话,好处是可以提高性能。需要注意的是图层不仅仅是面向屏幕绘制,你可以用来绘制非面向屏幕的上下文,比如PDF上下文。
- 缓存。尽管你是为了这个目的使用layers,但这不是必须的,因为Quartz 排版人员会产生不必要的缓冲区。如果你必须绘制到缓存,那么就使用Layer替换bitmap context吧。
CGLayer对象和transparent 层和CGContext方法创建的CGPath和path类似。在CGLayer和CGPath的情况下,你画一个抽象的目的地,并且在后来能够完整的绘制另一个目的地,像屏幕或者PDF。当你绘制一个透明的图层,或者用CGContext的方法绘制路径,你可以直接绘制到用Graphic Context 代表的目的地。没有用户手机绘制的中间过度的目的地。