2014-11-22 37 views
6

我正在尝试使用虚线模式在CAShapeLayer中描述路径。我使用lineDashPattern属性创建了许多破折号模式。但是这个属性并没有给出任何选择。我想我的破折号是圆点状的图像下面:如何为CAShapeLayer绘制圆点笔划图案?

enter image description here

我知道这是可以实现的,因为我已经在许多应用程序看到了这一点。但我无法找到任何方式在CAShapeLayer库中执行此操作。所以我想知道如何获得这些圆点短跑模式?

回答

4

所有你需要做的是设置kCALineCapRound您CAShapeLayer的的linecap属性,然后你lineDashPattern设置为[0.0,X],其中,例如x是2 *的如果你希望点之间的距离和你的点直径一样长,你的CAShapelayer的线宽。

lineDashPattern 0.0为先涂上段有导致kCALineCapRound画一个半圆和后面的画段前和漆的任何部分大于零会导致点成为丸。 enter image description here

+0

即使我设置'X = 2 * linewitdh'它给我吃药 – 2015-07-03 11:55:52

+1

X无关与形式它定义了点之间的边距(未上漆的片段)。例子中的零点就是点的形状,如果绘制的线段大于零,它会给你一个药丸。 – 2015-07-04 19:25:51

1

尝试下面的代码片段

shapeLayer.lineDashPattern = [NSArray arrayWithObjects:[NSNumber numberWithInt:1],[NSNumber numberWithInt:2 * stroke.width()], nil]; 
shapeLayer.lineCap = kCALineCapRound; 
3

尝试//迅速

layer.strokeColor = UIColor.whiteColor().CGColor 
layer.fillColor = UIColor.clearColor().CGColor 
layer.lineWidth = 4 
layer.lineDashPattern = [0.01, layer.lineWidth * 2] 
layer.lineCap = kCALineCapRound