如何删除 UIImageView 上绘制的 CGPoint
How to delete a drawn CGPoint on a UIImageView
我有一个 UIImageView
我在上面画的点。
我将 CGpoint
存储在容量为 100 的 NSArray
中。
每次我收到一个新的 CGpoint 时,我想从数组中删除最后一个对象,将其从数组中删除,然后绘制新的 CGpoint
并将其添加到数组中。
那么我该如何擦除 CGpoint
?我的 UIImageView
?
上只有 100 CGpoint
我的代码:
- (void) drawLine:(CGPoint)pt onCanvas:(UIImageView *)canvas color:(UIColor *)color
{
UIGraphicsBeginImageContext(canvas.frame.size);
[canvas.image drawInRect:CGRectMake(0, 0, canvas.frame.size.width, canvas.frame.size.height)];
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetLineCap(ctx, kCGLineCapButt);
CGContextSetLineWidth(ctx,10.0);
CGContextSetRGBStrokeColor(ctx, 1.0, 0.0, 0.0, 1.0);
CGContextBeginPath(ctx);
CGContextAddEllipseInRect (ctx,CGRectMake(pt.x-2.0, pt.y-2.0, 4, 4));
CGContextSetFillColorWithColor(ctx,color.CGColor);
CGContextFillPath(ctx);
CGContextStrokePath(ctx);
canvas.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
您不能从图像中删除点。这是一张图片 - 将其想象成您拍摄的照片,然后您尝试从中删除背景。不可能的。
你能做的最好的事情就是不要使用双缓冲区 - 只需将点保留在数组中并在需要时绘制它们。然后你就不必删除任何东西。确实这可能会影响性能,但 100 分应该没问题。
我有一个 UIImageView
我在上面画的点。
我将 CGpoint
存储在容量为 100 的 NSArray
中。
每次我收到一个新的 CGpoint 时,我想从数组中删除最后一个对象,将其从数组中删除,然后绘制新的 CGpoint
并将其添加到数组中。
那么我该如何擦除 CGpoint
?我的 UIImageView
?
CGpoint
我的代码:
- (void) drawLine:(CGPoint)pt onCanvas:(UIImageView *)canvas color:(UIColor *)color
{
UIGraphicsBeginImageContext(canvas.frame.size);
[canvas.image drawInRect:CGRectMake(0, 0, canvas.frame.size.width, canvas.frame.size.height)];
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetLineCap(ctx, kCGLineCapButt);
CGContextSetLineWidth(ctx,10.0);
CGContextSetRGBStrokeColor(ctx, 1.0, 0.0, 0.0, 1.0);
CGContextBeginPath(ctx);
CGContextAddEllipseInRect (ctx,CGRectMake(pt.x-2.0, pt.y-2.0, 4, 4));
CGContextSetFillColorWithColor(ctx,color.CGColor);
CGContextFillPath(ctx);
CGContextStrokePath(ctx);
canvas.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
您不能从图像中删除点。这是一张图片 - 将其想象成您拍摄的照片,然后您尝试从中删除背景。不可能的。
你能做的最好的事情就是不要使用双缓冲区 - 只需将点保留在数组中并在需要时绘制它们。然后你就不必删除任何东西。确实这可能会影响性能,但 100 分应该没问题。