我有一个相对简单的进度视图实现,使用CALayer对象设置。进度视图本身是UIView的子视图。
这是设置进度环的代码:
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)
我现在想做的是将渐变添加到跟随(或弯曲)路径的进度环图层。我已经成功地向填充添加了线性渐变,但没有添加到路径中。
这是我想要的效果的示例:
到目前为止,我发现所有的方法都需要使用CoreGraphics和CGContext的一堆额外步骤,而这些步骤并不完全适合我的实现。任何帮助都将不胜感激,谢谢!