0

我有一个UIImageView我在它上面画的点。我将我的存储CGpointNSArray容量为 100 的容量中。每次收到新的 CGpoint 时,我都想从数组中擦除最后一个对象,将其从数组中删除,然后绘制新对象CGpoint并将其添加到数组中。

那么我如何擦除一个CGpointCGpoint我的只有 100 个UIImageView

我的代码:

- (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();
}
4

1 回答 1

0

您不能从图像中删除点。它是一张图像——想象它就像你拍摄的一张照片,然后你尝试从中移除背景。不可能。

您可以做的最好的事情是不要使用双缓冲区 - 只需将点保留在数组中并在需要时将它们全部绘制。然后你就不必删除任何东西了。的确,这可能会稍微影响性能,但 100 分应该还是可以的。

于 2015-05-25T13:30:45.923 回答