如何为CAShapeLayer绘制圆点笔划图案?

时间:2014-11-22 11:43:24

标签: ios objective-c core-graphics cashapelayer

我试图使用破折号模式来描绘CAShapeLayer中的路径。我使用lineDashPattern属性创建了许多破折号模式。但是这个属性并没有为描述的短划线类型提供任何选项。我想成为我的破折号是圆点,如下图所示:

enter image description here

我知道它可以实现,因为我在许多应用程序中看到了这一点。但是我无法在CAShapeLayer库中找到任何实现方法。所以我想知道如何获得这些圆点破折号模式?

3 个答案:

答案 0 :(得分:7)

您所要做的就是为CAShapeLayer的 lineCap 属性设置 kCALineCapRound ,然后设置 lineDashPattern 到[0.0,x],例如,如果您希望点之间的边距与点直径一样长,则x为2 * CAShapelayer的线宽。

lineDashPattern 中第一个绘制片段的0.0是因为 kCALineCapRound 在前面绘制一个半圆在你的彩绘部分后面,任何大于零的彩绘部分都会使圆点成为一颗药丸。enter image description here

答案 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;