How To Draw line on touch event?

Hey i m beginner of objective C Please Help me

i make following code but not work…..

  • Resume AVPlayer video playback after app become active
  • Multiple Targets in Xcode: “Failed to launch simulated application: Unknown error.”
  • Objective-C passing methods as parameters
  • WkWebView won't loadHTMLstring
  • Error delivering iOS App update. “This bundle is invalid. Apple is not currently accepting applications built with this version of the SDK.”
  • What should Xcode 6 gitignore file include?
  • -(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
    
    UITouch *touch = [touches anyObject];
    if ([touch view] == self.view) {
    
        CGPoint location = [touch locationInView:self.view];
        loc1 = location;
        CGContextMoveToPoint(context, location.x, location.y);
        NSLog(@"x:%d y:%d At Touch Begain", loc1.x, loc1.y);
    }
    }
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    
    {
        UITouch *touch = [touches anyObject];
    
            if ([touch view] == self.view) 
        {
        CGPoint location = [touch locationInView:self.view];
        CGContextMoveToPoint(context, loc1.x, loc1.y);
        NSLog(@"x:%d y:%d At Touch Move", loc1.x, loc1.y);
        CGContextAddLineToPoint(context, location.x, location.y);
        NSLog(@"x:%d y:%d", location.x, location.y);
    }
    
    }
    

    i declare contex in viewdidload method and also try to declare in touch event but not work…

    My app Log file look like…

    x:0 y:1079934976 At Touch Move Thu Jan 13 11:20:05 .local
    DragDrop[536] :

    CGContextAddLineToPoint: invalid context 0x0 2011-01-13 11:20:05.149
    DragDrop[536:207] x:0 y:1079902208 Thu Jan 13 11:20:05 .local
    DragDrop[536] :

    CGContextSetRGBStrokeColor: invalid context 0x0 Thu Jan 13 11:20:05
    .local DragDrop[536] :

    CGContextDrawPath: invalid context 0x0 Thu Jan 13 11:20:05 .local
    DragDrop[536] :

    CGContextMoveToPoint: invalid context 0x0 2011-01-13 11:20:05.199
    DragDrop[536:207] x:0 y:1079934976 At Touch Move Thu Jan 13 11:20:05
    .local DragDrop[536] :

    CGContextAddLineToPoint: invalid context 0x0 2011-01-13 11:20:05.200
    DragDrop[536:207] x:0 y:1079885824

    3 Solutions Collect From Internet About “How To Draw line on touch event?”

    You typically don’t draw directly in the touch detection methods.
    Usually, you’d just store new points/lines there and draw all of them in drawRect:. Let’s assume you have a custom subclass of UIView which has an instance variable paths of type NSMutableArray and a property currentPath of type UIBezierPath. You could then implement the touch detection and drawRect methods roughly like this:

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
      self.currentPath = [UIBezierPath bezierPath];
      currentPath.lineWidth = 3.0;
      [currentPath moveToPoint:[touch locationInView:self]];
      [paths addObject:self.currentPath];
    }
    
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
      [self.currentPath addLineToPoint:[touch locationInView:self]];
      [self setNeedsDisplay];
    }
    
    - (void)drawRect:(CGRect)rect {
      [[UIColor redColor] set];
      for (UIBezierPath *path in paths) {
        [path stroke];
      }
    }
    

    Note that this is simplified a lot. If you draw many lines, performance will suffer and eventually, you’ll want to cache the drawing in a bitmap image, but this should get you started.

    use my this answer , it draw a line (free hand).

    Not able to include undo/redo with smooth free hand drawing

    hope this helps

    You need to call CGContextStrokePath after a call to AddLineToPoint.
    Make sure to define a stroke path color first though.

    CGContextSetRGBStrokeColor(context,0,0,1,1);
    CGContextStrokePath(context);