To draw graphics on the view you have to create a subclass of the UIView object and override the drawRect method. Do this as follows:

Create The Subclass File

New File

Select the ‘Objective-C’ class icon and click Next.

Change the Subclass of: option to ‘UIView’ and click Next

Save the class (e.g. name as #Draw2D_iPhone instead of #ViewController_iPhone)

Set The View Controller To Use It

Open the original #ViewController.xib file and select the view. In the Identity Inspector properties change the Class setting from ‘UIView’ to our new class named #Draw2D_iPhone

In the #Draw2D_iPhone.m file create this function to carry out the drawing:


    - (void) drawRect:(CGRect)rect
    {

Note you can’t call this function directly, but you can trigger it in your main ViewController file by using:


    [self.view setNeedsDisplay];

Draw Lines


     //Get the CGContext from this view
     CGContextRef context = UIGraphicsGetCurrentContext();

     //Set the stroke (pen) color
     CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
     //Set the width of the pen mark
     CGContextSetLineWidth(context, 5.0);

     // Draw a line
     //Start at this point
     CGContextMoveToPoint(context, 10.0, 30.0);

     //Give instructions to the CGContext
     //(move "pen" around the screen)
     CGContextAddLineToPoint(context, 310.0, 30.0);
     CGContextAddLineToPoint(context, 310.0, 90.0);
     CGContextAddLineToPoint(context, 10.0, 90.0);

     //Draw it
     CGContextStrokePath(context);

Draw Rectangle


     //Get the CGContext from this view
     CGContextRef context = UIGraphicsGetCurrentContext();

     //Draw a rectangle
     CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
     //Define a rectangle
     CGContextAddRect(context, CGRectMake(10.0, 150.0, 60.0, 120.0));     //X, Y, Width, Height
     //Draw it
     CGContextFillPath(context);
 

Links

http://www.techotopia.com/index.php/An_iOS_4_iPhone_Graphics_Drawing_Tutorial_using_Quartz_2D_%28Xcode_4%29