title: iOS drawing to screen
body: <p>I am working on drawing to the iOS screen using core graphics, and I managed to be able to draw on the screen, but from the tutorial I followed, the drawing screen covers everything else in my nib file. Can anyone help me figure out how to confine the drawing area to within the view I created in my nib? I've been stuck on this for a while.</p>
  
  <p>The tutorial I followed was this:
  <a href="http://www.ifans.com/goto/http://www.touchrepo.com/SampleCode/TEST_DRAW_APP.zip" rel="nofollow">http://www.ifans.com/goto/http://www.touchrepo.com/SampleCode/TEST_DRAW_APP.zip</a></p>
  
  <p>My code:</p>
  
  <pre><code>- (void)viewDidLoad
  {
      [super viewDidLoad];
      // Do any additional setup after loading the view from its nib.
  
      //Set text from previous
      text.text = [[GameManager sharedManager] inText];
  
      drawImage = [[UIImageView alloc] initWithImage:nil];
      drawImage.frame = self.view.frame;
      [self.view addSubview:drawImage];
  }
  
  - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
  {
      mouseSwiped = NO;
      UITouch *touch = [touches anyObject];
  
      if ([touch tapCount] == 2) {
          drawImage.image = nil;
          return;
      }
  
      lastPoint = [touch locationInView:self.view];
      lastPoint.y -= 20;
  
  }
  
  - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
  {
      mouseSwiped = YES;
      UITouch *touch = [touches anyObject];   
      CGPoint currentPoint = [touch locationInView:self.view];
      currentPoint.y -= 20;
  
      UIGraphicsBeginImageContext(self.view.frame.size);
      [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
      CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
      CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
      CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0);
      CGContextBeginPath(UIGraphicsGetCurrentContext());
      CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
      CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
      CGContextStrokePath(UIGraphicsGetCurrentContext());
      drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
      UIGraphicsEndImageContext();
  
      lastPoint = currentPoint;    
  }
  
  - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
  {
      UITouch *touch = [touches anyObject];
  
      if ([touch tapCount] == 2) 
      {
              drawImage.image = nil;
              return;
      }
  
      if(!mouseSwiped) 
      {
          UIGraphicsBeginImageContext(self.view.frame.size);
          [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
          CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
          CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
          CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0);
          CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
          CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
          CGContextStrokePath(UIGraphicsGetCurrentContext());
          CGContextFlush(UIGraphicsGetCurrentContext());
          drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
          UIGraphicsEndImageContext();
      }
  }
  </code></pre>