An offscreen context for reusing content drawn with Core Graphics.
Layer objects are useful for offscreen drawing and can be used in much the same way that a bitmap context can be used. In fact, a
CGLayer object is a much better representation than a bitmap context.
CGLayer objects can improve performance, particularly when you need to capture a piece of drawing that you stamp repeatedly (using the same scale factor and orientation). Core Graphics can cache
CGLayer objects to the video card, making drawing a
CGLayer to a destination much faster than rendering the equivalent image constructed from a bitmap context.
CGLayer object is created relative to a graphics context. Although layer uses this graphics context as a reference for initialization, you are not restricted to drawing the layer to this graphics context. You can draw the layer to other graphics contexts, although any limitations of the original context are imposed. For example, if you create a
CGLayer object using a bitmap context, the layer is rendered as a bitmap when drawn to any other graphics context.
You can use a
CGLayer when you want to apply a shadow to a group of objects (such as a group of circles) rather than to individual objects.
Use these layers in your code whenever you can, especially when:
You need to reuse a filled or stroked shape.
You are building a scene and at least some of it can be reused. Put the reusable drawing in its own layer.