我使用以下代码在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和宽度,没有运气。
答案 0 :(得分:0)
我会改变方法,基本上你是在捕捉触摸点,而不是"加入点"可以这么说。最好使用UIBezierPaths完成此任务。
一段时间我回答了一个问题,操作系统想要做类似的事情,但却遇到了性能问题。在我发布的答案中有代码完全按照你的意愿完成。查看这篇文章以获取完整的示例代码,您几乎可以剪切和粘贴该类(我在转录中看不到什么价值)。 Sample drawing path
如果您需要更多帮助,请告诉我