CAGradient图层在视图中不可见

时间:2017-03-15 10:49:25

标签: ios swift core-graphics cgcontext cagradientlayer

我尝试在我使用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,但我不确定是否剪切了任何内容,因为我没有看到任何渐变(无论是在整个视图上还是在整个视图上)。我阅读了文档,但它没有清楚(在我的情况下......)。

1 个答案:

答案 0 :(得分:5)

cgColor失踪了...抱歉给您带来不便。

let gradientLayer = CAGradientLayer()
gradientLayer.frame = self.bounds
gradientLayer.colors = [UIColor.red.cgColor, UIColor.blue.cgColor]
self.layer.addSublayer(gradientLayer)