# 17.8. Drawing Rectangles

## Problem

You want to be able to draw rectangles on a graphics context.

## Solution

Use the `CGPathAddRect` to add a rectangle to a path and then draw that path on a graphics context.

## Discussion

As we learned in Recipe 17.7, you can construct and use paths quite easily. One of the procedures that you can use on paths in Core Graphics is `CGPathAddRect`, which lets you draw rectangles as part of paths. Here is an example:

````-` `(``void``)``drawRect:``(``CGRect``)``rect``{`

`/* Create the path first. Just the path handle. */`
`CGMutablePathRef` `path` `=` `CGPathCreateMutable``();`

`/* Here are the rectangle boundaries */`
`CGRect` `rectangle` `=` `CGRectMake``(``10.0f``,`
`10.0f``,`
`200.0f``,`
`300.0f``);`

`/* Add the rectangle to the path */`
`CGPathAddRect``(``path``,`
`NULL``,`
`rectangle``);`

`/* Get the handle to the current context */`
`CGContextRef` `currentContext` `=` `UIGraphicsGetCurrentContext``();`

`/* Add the path to the context */`
`CGContextAddPath``(``currentContext``,`
`path``);`

`/* Set the fill color to cornflower blue */`
`[[``UIColor` `colorWithRed:``0.20f`
`green:``0.60f`
`blue:``0.80f`
`alpha:``1.0f``]` `setFill``];`

`/* Set the stroke color to brown */`
`[[``UIColor` `brownColor``]` `setStroke``];`

`/* Set the line width (for the stroke) to 5 */`
`CGContextSetLineWidth``(``currentContext``,`
`5.0f``);`

`/* Stroke and fill the path on the context */`
`CGContextDrawPath``(``currentContext``,`
`kCGPathFillStroke``);`

`/* Dispose of the path */`
`CGPathRelease``(``path``);`

`}````

Here, we are drawing a rectangle on the path, filling it with cornflower blue, and stroking the edges of the rectangle with brown. Figure 17-27 shows how the ...

Get iOS 6 Programming Cookbook 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.