我正在嘗試繪製一個餅圖,它將由相同大小的段構成,每個段都具有不同的顏色。我立足我的代碼關閉此SO: Draw a circular segment progress in SWIFT在Core Graphics中創建一個帶有多個顏色段的圓圈
let circlePath = UIBezierPath(ovalInRect: CGRect(x: 200, y: 200, width: 150, height: 150))
var segments: [CAShapeLayer] = []
let segmentAngle: CGFloat = 1.0/CGFloat(totalSegments)
for var i = 0; i < totalSegments; i++ {
let circleLayer = CAShapeLayer()
circleLayer.path = circlePath.CGPath
// start angle is number of segments * the segment angle
circleLayer.strokeStart = segmentAngle * CGFloat(i)
//create a gap to show segments
let gapSize: CGFloat = 0.008
circleLayer.strokeEnd = circleLayer.strokeStart + segmentAngle - gapSize
circleLayer.lineWidth = 10
circleLayer.strokeColor = UIColor(red:0, green:0.004, blue:0.549, alpha:1).CGColor
circleLayer.fillColor = UIColor.redColor().CGColor
// add the segment to the segments array and to the view
segments.insert(circleLayer, atIndex: i)
view.layer.addSublayer(segments[i])
}
但是使用這個我想讓它,所以我可以顏色基於索引值i每個段的for循環。最初我只是用奇數或偶數進行測試,但發現填充部分會用最後使用的顏色填充整個圓。
我懷疑這是因爲填充顏色填充整個圓圈,即使筆畫有一個有限的開始和結束。我怎樣才能創建相同的效果,但爲每個片段啓用單獨的填充顏色?
在使用弧線方法使用lineWidth的側面註釋中創建了一個非常光滑的外觀圓圈! – Dan