如何在绘图中实现擦除功能,以便用户可以清除所有绘图

时间:2013-01-16 13:30:03

标签: iphone ios5 ios6 objective-c-blocks

我正在使用CoreGraphics在背景图像上实现自由手绘,这对我来说很好,现在我想为此绘图实现擦除功能,以便用户可以清除他的绘图

2 个答案:

答案 0 :(得分:0)

如果您只想清除屏幕,请删除您创建的CGPath,它将不会显示任何内容。

如果您想让使用切换到橡皮擦工具并且只删除某些东西,您需要设置一个新的绘图类,让您在其他绘图上绘制背景或调整您必须的类不绘制原始路径和橡皮擦路径之间的交叉点。

答案 1 :(得分:0)

您可以在UITouch方法“touchesMoved”中使用它来清除您绘制的路径

`UITouch * touch = [[event allTouches] anyObject];

currenttouch = [touch locationInView:drawingImageView];

CGColorRef strokeColor = [UIColor blackColor].CGColor;

UIGraphicsBeginImageContext(drawingImageView.frame.size);

    CGContextRef context = UIGraphicsGetCurrentContext();


    [drawingImageView.image drawInRect:CGRectMake(0, 0, drawingImageView.frame.size.width, drawingImageView.frame.size.height)];

    CGContextSetLineCap(context, kCGLineCapRound);

    CGContextSetLineWidth(context, brushSize);

    CGContextSetStrokeColorWithColor(context, strokeColor);

    CGContextSetBlendMode(context, kCGBlendModeClear);

    CGContextBeginPath(context);

    CGContextMoveToPoint(context, currenttouch.x, currenttouch.y);

    CGContextAddLineToPoint(context, currenttouch.x, currenttouch.y);

    CGContextStrokePath(context);

    drawingImageView.image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

`