Instance Method


Tells the delegate to implement the display process.


optional func display(_ layer: CALayer)



The layer whose contents need updating.


The display(_:) delegate method is called when the layer is marked for its content to be reloaded, typically initiated by the setNeedsDisplay() method. The typical technique for updating is to set the layer's contents property.

Listing 1 shows how you can create a class named LayerDelegate that implements CALayerDelegate and sets it as a layer's (named sublayer) delegate. When setNeedsDisplay() is called on sublayer, the delegate's display(_:) replaces its contents with a specified image.

Listing 1

Updating a layer's contents

let delegate = LayerDelegate()
lazy var sublayer: CALayer = {
    let layer = CALayer()
    layer.delegate = self.delegate
    return layer
// When `sublayer.setNeedsDisplay()` is called, `sublayer.contents` are updated.
class LayerDelegate: NSObject, CALayerDelegate {
    func display(_ layer: CALayer) {
        layer.contents = UIImage(named: "rabbit.png")?.cgImage

See Also

Providing the Layer's Content

func draw(CALayer, in: CGContext)

Tells the delegate to implement the display process using the layer's CGContext.

func layerWillDraw(CALayer)

Notifies the delegate of an imminent draw.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software