我如何添加一个渐变层到CAShapeLayer?



我有一个需要添加渐变背景的圆形。我如何添加一个CAGradientLayer到一个CAShapeLayer?

这是形状图层:

let circleLayer = CAShapeLayer()
let circlePath = UIBezierPath(arcCenter: center, radius: 100, startAngle: -CGFloat.pi / 2, endAngle: 2 * CGFloat.pi, clockwise: true)
circleLayer.path = circlePath.cgPath
circleLayer.strokeColor = UIColor.lightGray.cgColor
circleLayer.lineWidth = 10
circleLayer.fillColor = UIColor.gray.cgColor
circleLayer.lineCap = CAShapeLayerLineCap.round
view.layer.addSublayer(circleLayer)

我想用渐变代替填充色,从上到下,从#444444到#6C6C6C,像这样。

func createGradientLayer() {
gradientLayer = CAGradientLayer()

gradientLayer.frame = self.view.bounds

gradientLayer.colors = [UIColor.redColor().CGColor, UIColor.yellowColor().CGColor]

self.view.layer.addSublayer(gradientLayer)
}

使用mask

let gradientLayer = CAGradientLayer()
gradientLayer.frame = frame // Set the Frame
gradientLayer.colors = [UIColor.yellow.cgColor,
UIColor.blue.cgColor] // Set the Colors
gradientLayer.startPoint = CGPoint(x: 0, y: 1)
gradientLayer.endPoint = CGPoint(x: 1, y: 0)
gradientLayer.mask = circleLayer // Set the mask

最新更新