我有一個相對直接的CALayer對象設置進度視圖的實現。進度視圖本身是UIView的子視圖。Swift:沿着貝塞爾路徑漸變(使用CALayers)
下面是設置進度環代碼:
self.progressRingLayer = CAShapeLayer()
let innerRect = CGRectInset(bounds, CGFloat(self.lineWidth)/2, CGFloat(self.lineWidth)/2)
let innerPath = UIBezierPath(ovalInRect: innerRect)
self.progressRingLayer.path = innerPath.CGPath
self.progressRingLayer.fillColor = UIColor.clearColor().CGColor
self.progressRingLayer.strokeColor = kProgressColor.CGColor
self.progressRingLayer.anchorPoint = CGPointMake(0.5, 0.5)
self.progressRingLayer.transform = CATransform3DRotate(self.progressRingLayer.transform, (CGFloat(M_PI))*1, 0, 0, 1)
self.progressRingLayer.lineCap = kCALineCapRound
self.progressRingLayer.lineWidth = CGFloat(self.lineWidth)
self.layer.addSublayer(self.progressRingLayer)
什麼我想現在要做的就是添加一個漸變到下面的progressRingLayer(或彎曲)的路徑。我已經成功地爲填充添加了線性漸變,但不是僅添加到路徑中。
這裏是我想要的效果的例子:
到目前爲止,一切我已經發現需要與不太適合我的執行CoreGraphics中和CGContext上一堆額外的步驟。任何幫助將是偉大的,謝謝!
將使用您的路徑作爲您的漸變層的面具足夠作爲答案,或者你也想讓你的漸變與你的路徑彎曲,而不是顯示爲蒙面線性漸變? –
我正在尋找具有漸變彎曲的路徑。使用面具是我完成錯誤效果的方法之一。 –
你能畫一幅你想要的畫嗎? – matt