设置椭圆的渐变颜色

问题描述 投票:-1回答:1

我需要为椭圆设置渐变颜色。但我不知道该怎么做。如何用渐变颜色填充椭圆,而不是CGColor。我的代码:

class testView:UIView { 
    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func draw(_ rect: CGRect) {
        guard let context = UIGraphicsGetCurrentContext() else {
            return
        }
        var gradient:CAGradientLayer = CAGradientLayer()
        gradient.frame               = self.bounds
        gradient.colors              = [UIColor.red.cgColor, UIColor.green.cgColor]
        context.addEllipse(in: rect)
        context.setFillColor(UIColor.blue.cgColor)
        context.fillPath()
    }
}
swift uiview uikit core-graphics
1个回答
0
投票

斯威夫特4

这是我当前项目的复制粘贴。您可以根据自己的需要进行调整

var gradientLayer: CAGradientLayer!

func createGradientLayer() {

    var colorIndex: Int = 0

    gradientLayer = CAGradientLayer()
    gradientLayer.frame = self.bounds
    gradientLayer.colors = [myColors[colorIndex][0].cgColor, myColors[colorIndex][1].cgColor]
    gradientLayer.startPoint = CGPoint(x: 1.0, y: 0.0)
    gradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0)

    self.layer.addSublayer(gradientLayer)
}


let myColors: [[UIColor]] = [
    [UIColor.rgb(red: 251, green: 96, blue: 80), UIColor.rgb(red: 192, green: 57, blue: 43)],
    [UIColor.rgb(red: 240, green: 136, blue: 44), UIColor.rgb(red: 211, green: 84, blue: 0)]
]
© www.soinside.com 2019 - 2024. All rights reserved.