我想在所有视图中放入渐变背景。用UIView绘制渐变画()用swift
我认为这样做的方式不需要在所有视图控制器中创建视图的IBOutlet,就是从UIView创建一个新类,然后在draw()中放入使CAGradientLayer成为代码的代码风景。
因此,在界面生成器中,我只需要选择背景视图并将其类设置为我的自定义类。它到目前为止工作。
我的问题是如果我可以做到这一点没有问题。有人知道可以吗? 因为从UIView继承的模型文件附带注释: //如果执行自定义绘图,则只能覆盖draw()。
而且我不知道是否创建图层数量。或者,如果draw()仅适用于低级绘图或类似的东西。对draw()函数的最佳用法一无所知。
这是代码:
override func draw(_ rect: CGRect) {
let layer = CAGradientLayer()
layer.frame = CGRect(x: 0, y: 0, width: self.frame.width, height: self.frame.height)
let color1 = UIColor(red: 4/255, green: 39/255, blue: 105/255, alpha: 1)
let color2 = UIColor(red: 1/255, green: 91/255, blue: 168/255, alpha: 1)
layer.colors = [color1.cgColor, color2.cgColor]
self.layer.addSublayer(layer)
}
您需要为您的梯度层的位置属性,您可以了解更多。 –