本文介绍了想在Quartz的ipad绘画应用程序中添加手动擦除选项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Quartz 2D for ipad进行绘画应用。现在我想添加一个橡皮擦选项,以便用户可以手动擦除他绘制的部分线条。我也有背景图像。有人可以帮忙吗?

I am working on a painting application using Quartz 2D for ipad. Now I want to add an eraser option so that user can manually erase portion of his drawn line with touch.I have also background image. Can anyone please help?

推荐答案

是的,这在我的应用程序中运行良好; - )

yes this is work well in my app ;-)

首先,你在触摸开始时添加这个代码

firstly you add this code in touch began

UITouch *touch = [touches anyObject];
        lastPoint = [touch locationInView:imgview];
        UIGraphicsBeginImageContext(imgview.frame.size);
        [imgview.image drawInRect:CGRectMake(0, 0, imgview.frame.size.width, imgview.frame.size.height)];
        CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
        CGContextSetLineWidth(UIGraphicsGetCurrentContext(), lineWidth);
        CGContextSetStrokeColorWithColor(UIGraphicsGetCurrentContext(), [UIColor colorWithPatternImage:img].CGColor);
        CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), [UIColor clearColor].CGColor);
        CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), YES);
        CGContextBeginPath(UIGraphicsGetCurrentContext());

这里img是你的背景图片然后在移动触摸你简单写行代码代码是这个

here img is ur background image then on move touch you simple write the line stroke code that code is this

UITouch *touch = [touches anyObject];
        CGPoint currentPoint = [touch locationInView:imgview];
        NSLog(@"asdasdas");
        CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
        CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
        CGContextStrokePath(UIGraphicsGetCurrentContext());
        imgview.image = UIGraphicsGetImageFromCurrentImageContext();
        lastPoint = currentPoint;

然后你看到最终结果是产生; - )

then you see the final result is produce ;-)

这篇关于想在Quartz的ipad绘画应用程序中添加手动擦除选项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 13:28
查看更多