нарисовать линию над изображением (картинкой) - PullRequest
0 голосов
/ 19 июля 2011

Я новичок в разработке для iphone и могу использовать quartz2D, используя приведенный ниже код, чтобы нарисовать линию.
Я хочу реализовать функцию, которая рисует линию над картинкой (изображением), например, у меня есть изображение карты, которое называется: map.jpg (используя добавление изображения).

Можете ли вы сказать мне подробный код или метод? Заранее спасибо!

Код:

- (void)drawRect:(CGRect)rect 

1 Ответ

1 голос
/ 19 июля 2011

Используйте этот код, чтобы нарисовать линию.

- (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(), 0, 0, 0, 1);

      CGContextBeginPath(UIGraphicsGetCurrentContext());

      CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);

      CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);

      CGContextStrokePath(UIGraphicsGetCurrentContext());

      drawImage.image = UIGraphicsGetImageFromCurrentImageContext();

      UIGraphicsEndImageContext(); 

      lastPoint = currentPoint; 

      mouseMoved++; 

      if (mouseMoved == 10) {

            mouseMoved = 0;

      } 

} 
...