我正在向应用程序添加一个简单的绘图功能,并且我希望用户能够绘制虚线。我的绘图程序工作得很好,添加了一个 CAShapeLayer 并设置了路径。
但是,当我尝试绘制虚线时,只有当用户绘制速度非常快时,虚线才明显。如果我画得很慢,线条是实心的,因为破折号是聚在一起的。
步骤 1. 开始一个新的绘图层。一些代码显然被遗漏了。
// CAShapeLayer
// Dashed pattern is arbitrary - I've tried a variety of values
[self.currentDrawLayer setLineDashPattern:[NSArray arrayWithObjects:
[NSNumber numberWithInt:6],
[NSNumber numberWithInt:12],
nil]];
currentPenPath = [UIBezierPath bezierPath];
[currentPenPath moveToPoint:currentPoint];
步骤 2. 在用户绘制和更新图层时添加点。
[currentPenPath addLineToPoint:currentPoint];
[currentPenPath moveToPoint:currentPoint];
[[self currentDrawLayer] setPath:currentPenPath.CGPath];
我希望用户能够随心所欲地画得慢或快,并在绘画时有一致的破折号。我需要先把所有的点都弄平吗?
有没有一种简单的方法可以在用户绘制时绘制破折号?
任何指导表示赞赏。