Graphics Contexts
UIImageView draws an image for you and takes care of all the details; in many cases, it will be all you’ll need. Eventually, though, you may want to create some drawing yourself, directly, in code. To do so, you will always need a graphics context.
A graphics context is basically a place you can draw. Conversely, you can’t draw in code unless you’ve got a graphics context. There are several ways in which you might obtain a graphics context; in this chapter I will concentrate on two, which have proven in my experience to be far and away the most common:
- You create an image context
-
The function
UIGraphicsBeginImageContextWithOptions
creates a graphics context suitable for use as an image. You then draw into this context to generate the image. When you’ve done that, you callUIGraphicsGetImageFromCurrentImageContext
to turn the context into a UIImage, and thenUIGraphicsEndImageContext
to dismiss the context. Now you have a UIImage that you can display in your interface or draw into some other graphics context or save as a file. - Cocoa hands you a graphics context
-
You subclass UIView and implement
drawRect:
. At the time yourdrawRect:
implementation is called, Cocoa has already created a graphics context and is asking you to draw into it, right now; whatever you draw is what the UIView will display. (A slight variant of this situation is that you subclass a CALayer and implementdrawInContext:
, or make some object the delegate of a layer and implementdrawLayer:inContext: ...
Get Programming iOS 6, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.