【发布时间】:2018-05-31 20:07:01
【问题描述】:
我想在所有视图中添加渐变背景。
我认为不需要在所有视图控制器中创建视图的 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)
}
【问题讨论】:
-
您需要渐变层的位置属性。