我试图使用破折号模式来描绘CAShapeLayer
中的路径。我使用lineDashPattern
属性创建了许多破折号模式。但是这个属性并没有为描述的短划线类型提供任何选项。我想成为我的破折号是圆点,如下图所示:
我知道它可以实现,因为我在许多应用程序中看到了这一点。但是我无法在CAShapeLayer
库中找到任何实现方法。所以我想知道如何获得这些圆点破折号模式?
答案 0 :(得分:7)
您所要做的就是为CAShapeLayer的 lineCap 属性设置 kCALineCapRound ,然后设置 lineDashPattern 到[0.0,x],例如,如果您希望点之间的边距与点直径一样长,则x为2 * CAShapelayer的线宽。
lineDashPattern 中第一个绘制片段的0.0是因为 kCALineCapRound 在前面绘制一个半圆在你的彩绘部分后面,任何大于零的彩绘部分都会使圆点成为一颗药丸。
答案 1 :(得分:4)
试试// swift
layer.strokeColor = UIColor.whiteColor().CGColor
layer.fillColor = UIColor.clearColor().CGColor
layer.lineWidth = 4
layer.lineDashPattern = [0.01, layer.lineWidth * 2]
layer.lineCap = kCALineCapRound
答案 2 :(得分:1)
尝试以下代码段
shapeLayer.lineDashPattern = [NSArray arrayWithObjects:[NSNumber numberWithInt:1],[NSNumber numberWithInt:2 * stroke.width()], nil];
shapeLayer.lineCap = kCALineCapRound;