我有一个UIImageView
,我在它上面画了点数。
我将CGpoint
存储在容量为100的NSArray
中。
每当我收到一个新的CGpoint我想要从数组中删除最后一个对象时,将其从数组中删除,然后绘制新的CGpoint
并将其添加到数组中。
那么如何删除CGpoint
?我的CGpoint
上只有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();
}
答案 0 :(得分:0)
您无法从图像中删除点。这是一个图像 - 想象它就像你拍摄的照片,然后你试图从中删除背景。这是不可能的。
你能做的最好的事情就是不要使用双缓冲区 - 只需保留数组中的点并在需要时将它们全部绘制。然后你不必删除任何东西。这可能会影响性能,但100分应该还不错。