Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL
Help

22. Core Animation Layer > Layer Content

Layer Content

A layer contains a bitmap called its contents, which can be set programmatically or with an image. To set the contents programmatically, you either subclass CALayer or assign a delegate to an instance of CALayer. The delegate then implements drawing routines. (This is how implicit layers work; the view is its layer’s delegate.)

We will discuss drawing to a layer programmatically at the end of this chapter. For now, you’re going to set the contents of the layer using an image file.

In HypnosisView.m, add the following code to the initWithFrame: method:

        [boxLayer setBackgroundColor:cgReddish];

        // Create a UIImage
        UIImage *layerImage = [UIImage imageNamed:@"Hypno.png"];

        // Get the underlying CGImage
        CGImageRef image = [layerImage CGImage];

        // Put the CGImage on the layer
        [boxLayer setContents:(__bridge id)image];

        // Inset the image a bit on each side
        [boxLayer setContentsRect:CGRectMake(-0.1, -0.1, 1.2, 1.2)];

        // Let the image resize (without changing the aspect ratio)
        // to fill the contentRect
        [boxLayer setContentsGravity:kCAGravityResizeAspect];
    
        [[self layer] addSublayer:boxLayer];

  

You are currently reading a PREVIEW of this book.

                                                                                        

Get instant access to over
$1 million worth of books and videos.

  

Start a Free Trial