O'Reilly logo

iOS 5 Programming Cookbook by Vandad Nahavandipoor

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

15.7. 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 15.6, 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 15-21 shows how the ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required