我尝试在我使用Core Graphics制作的饼图中添加CAGradient效果。事实证明,我无法理解如何将它应用于作为CGPath一部分的视图......
override func draw(_ rect: CGRect)
{
...
func arc(myRadius: CGFloat, myStartAngle: CGFloat, myEndAngle: CGFloat) {
// This is the pie chart segment
context?.setFillColor(phenotypeColor.cgColor)
context?.move(to: center)
context?.addArc(center: center, radius: finalRadius, startAngle: myStartAngle, endAngle: myEndAngle, clockwise: true)
context?.fillPath()
(...)
let gradientLayer = CAGradientLayer()
gradientLayer.frame = self.bounds
gradientLayer.colors = [UIColor.red, UIColor.blue]
self.layer.addSublayer(gradientLayer)
}
我在屏幕上看不到任何渐变(只有白色背景......)。
最后,我在保存状态后尝试clip
上下文juste,但我不确定是否剪切了任何内容,因为我没有看到任何渐变(无论是在整个视图上还是在整个视图上)。我阅读了文档,但它没有清楚(在我的情况下......)。
答案 0 :(得分:5)
cgColor
失踪了...抱歉给您带来不便。
let gradientLayer = CAGradientLayer()
gradientLayer.frame = self.bounds
gradientLayer.colors = [UIColor.red.cgColor, UIColor.blue.cgColor]
self.layer.addSublayer(gradientLayer)