我需要为椭圆设置渐变颜色。但我不知道该怎么做。如何用渐变颜色填充椭圆,而不是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()
}
}
斯威夫特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)]
]