2014-11-22 38 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