我使用 UIBezierPath 和-touches...
UIView 的方法编写了一个简单的绘图代码。这幅画效果很好,但我有一些不好的经历。
当我画得很慢时,效果很好。但是我画得越快,线条就越前卫。那么我如何让它们“平滑”以变得不那么前卫(更多点)?
当我使用
setLineWidth
高线宽时,线条变得非常难看。
这是一张显示丑陋实际含义的图像:
为什么会这样画脂肪线?!
编辑:这里有一些代码
- (void)drawInRect:(CGRect)rect
{
for(UIBezierPath *path in pathArray) {
[[UIColor blackColor] setStroke];
[path setLineWidth:50.0];
[path stroke];
}
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
startPoint = [[touches anyObject] locationInView:self];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:startPoint];
[path addLineToPoint:[[touches anyObject] locationInView:self]];
if(isDrawing) {
[pathArray removeLastObject];
}
else {
isDrawing = YES;
}
[pathArray addObject:path];
[path close];
[self setNeedsDisplay];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
isDrawing = NO;
}
我希望有人可以帮助我解决这些问题。非常感谢,问候,朱利安