小编Cal*_*vis的帖子

在UIBezierPath图上应用渐变层

这是我第一次问一个问题,请原谅我不是很彻底。

基本上,我试图在绘制为图形的UIBezierPath之上应用渐变层。

这是我的图:

正态图

这是我要使用的渐变层:

梯度图

这是我尝试绘制的图形:

let path = quadCurvedPathWithPoints(points: points)
let shapeLayer = CAShapeLayer()
shapeLayer.path = path.cgPath
shapeLayer.strokeColor = UIColor.blue.cgColor
shapeLayer.fillColor = UIColor.white.cgColor
shapeLayer.position = CGPoint(x: 0, y: 0)
shapeLayer.lineWidth = 1.0
Run Code Online (Sandbox Code Playgroud)

显然,这会用蓝色笔触填充图形,但是现在我尝试将白色渐变为绿色。我这样做的方式不起作用。结果如下:

失效梯度图

这是我正在努力的代码:

let startColor = UIColor.white.withAlphaComponent(0.5)
let endColor = UIColor.green

let gradient = CAGradientLayer()
gradient.colors = [startColor.cgColor, endColor.cgColor]
gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
gradient.endPoint = CGPoint(x: 1.0, y: 0.5)
gradient.frame = path.bounds
let shapeMask = CAShapeLayer()
shapeMask.path = path.cgPath
gradient.mask = shapeLayer
sparkLineView.layer.addSublayer(gradient)
Run Code Online (Sandbox Code Playgroud)

core-graphics uibezierpath cagradientlayer swift

2
推荐指数
1
解决办法
534
查看次数