CAGradient图层在视图中不可见

Tri*_*ton 2 core-graphics cgcontext ios cagradientlayer swift

我尝试在我使用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)
    }
Run Code Online (Sandbox Code Playgroud)

我在屏幕上看不到任何渐变(只有白色背景......).最后,clip在保存状态后我也尝试了上下文juste,但我不确定是否剪切了任何东西,因为我没有看到任何渐变(无论是在整个视图上还是仅在片段上).我阅读了文档,但它没有清楚(在我的情况下......).

Tri*_*ton 6

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

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

  • 不用道歉。我们都做到了。当您犯此错误时,您不会收到任何错误消息,一切都只是默默地失败。令人抓狂! (2认同)