0

我正在使用以下代码在 imageview 的图像上画线,

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if ([touch tapCount] == 2)
    return;
lastPoint = [touch locationInView:imageview];
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    CGPoint currentPoint = [touch locationInView:self.view];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), 3);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5);
    UIGraphicsBeginImageContext(self.view.frame.size);
    [imageview.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    CGContextClearRect(UIGraphicsGetCurrentContext(), CGRectMake(lastPoint.x, lastPoint.y, 5, 5));
    imageview.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
lastPoint = currentPoint;
}

输出

在此处输入图像描述

您可以看到点之间的间隙/空间。我需要输出应该如下所示,

在此处输入图像描述

我应该在我的代码中进行哪些更改以删除两个点之间的空格?
我认为,touchesended您的审核不需要代码。我改变了 CGContextSetLineCap 和宽度,没有运气。

4

1 回答 1

0

我会改变方法,本质上你是在捕捉接触点,而不是“加入点”可以这么说。你最好使用 UIBezierPaths 来完成这个任务。

前段时间我回答了一个问题,操作员想做类似的事情,但遇到了性能问题。我发布的答案中有代码完全可以满足您的要求。查看这篇文章以获取完整的示例代码,您几乎可以剪切和粘贴该类(我认为转录几乎没有价值)。示例绘制路径

如果您需要更多帮助,请告诉我

于 2014-08-07T15:49:47.060 回答