【发布时间】:2017-12-21 13:07:23
【问题描述】:
我正在创建一个马蹄形的 CAGradientLayer。它似乎没有走这条路,它只是画了一个带阴影的正方形。我错过了什么?
let gradientLayerContainer = CAShapeLayer()
let gradient = CAGradientLayer()
let segmentGradientPath = UIBezierPath.horseshoe(
center: centerPoint,
innerRadius: (bounds.width / 2) - config.ringWidth,
outerRadius: bounds.width / 2,
startAngle: segmentTapped.startAngle,
endAngle: segmentTapped.endAngle)
gradientLayerContainer.fillColor = UIColor.clear.cgColor
gradientLayerContainer.path = segmentGradientPath.cgPath
let end = centerPoint
let start = centerPoint.shifted(outerRadius, with: segmentTapped.centerAngle)
gradient.startPoint = CGPoint(x: start.x / bounds.width, y: start.y / bounds.height)
gradient.endPoint = CGPoint(x: end.x / bounds.width, y: end.y / bounds.height)
gradient.colors = [UIColor.white.withAlphaComponent(0.0).cgColor, UIColor.white.cgColor]
gradient.frame = segmentGradientPath.bounds
gradient.mask = gradientLayerContainer
gradient.locations = [0, 1]
horseshoeLayer.addSublayer(gradientLayerContainer)
gradientLayerContainer.insertSublayer(gradient, at: 0)
【问题讨论】:
标签: ios swift gradient shape layer