繁体   English   中英

如何使用drawinrect删除绘画中的空间?

[英]How to remove space in painting using drawinrect?

我正在使用以下代码在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和宽度,没有运气。

我会改变方法,从本质上讲,您是在捕获接触点,而不是“连接点”。 您最好将UIBezierPaths用于此任务。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM