0

I am using apps like bamboo book and paper, in iPad, the experience is really good, how is it work? which technology does it used when draw lines or curves on screen?

sxingfeng
  • 971
  • 4
  • 15
  • 32
  • That's not exactly a programming question, but in iOS it's likely that it's using the Quartz Framework to draw the lines and shapes. – ATaylor Feb 04 '13 at 10:27
  • possible duplicate http://stackoverflow.com/questions/3128752/draw-line-in-uiview – P.J Feb 04 '13 at 10:30

1 Answers1

0
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    mouseSwiped = NO;
    UITouch *touch = [touches anyObject];

    if ([touch tapCount] == 2) {
        //self.imageView.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;

    CGFloat components[3];
    [self getRGBComponents:components forColor:self.colorView.backgroundColor];
    NSLog(@"%f %f %f", components[0], components[1], components[2]);

    UIGraphicsBeginImageContext(self.view.frame.size);
    [self.imageView.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 10.0);
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), components[0], components[1], components[2],5.0);
    CGContextBeginPath(UIGraphicsGetCurrentContext());
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);


        CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeNormal);


    CGContextStrokePath(UIGraphicsGetCurrentContext());
    self.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    lastPoint = currentPoint;

    mouseMoved++;

    if (mouseMoved == 10) {
        mouseMoved = 0;
    }

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [touches anyObject];

    if ([touch tapCount] == 2) {
        //self.imageView.image = nil;
        return;
    }


    if(!mouseSwiped) {

        CGFloat components[3];
        [self getRGBComponents:components forColor:self.colorView.backgroundColor];
        NSLog(@"%f %f %f", components[0], components[1], components[2]);

        UIGraphicsBeginImageContext(self.view.frame.size);
        [self.imageView.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
        CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
        CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
        CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), components[0], components[1], components[2], 5.0);
        CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
        CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
        CGContextStrokePath(UIGraphicsGetCurrentContext());
        CGContextFlush(UIGraphicsGetCurrentContext());
        self.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    }
}

Also check following link

http://www.techotopia.com/index.php/An_iOS_4_iPhone_Graphics_Drawing_Tutorial_using_Quartz_2D

https://stackoverflow.com/questions/6449661/drawing-2d-images-on-iphone-tutorials

http://mobile.tutsplus.com/tutorials/iphone/ios-sdk_freehand-drawing/

http://www.raywenderlich.com/18840/how-to-make-a-simple-drawing-app-with-uikit

Community
  • 1
  • 1
iPatel
  • 46,010
  • 16
  • 115
  • 137