我有一个PageViewController,需要为它设置渐变背景。 在普通的ViewControllers中使用渐变背景时,我使用以下内容:
let layer = self.layer as! CAGradientLayer
layer.colors = [FirstColor.cgColor, SecondColor.cgColor]
layer.locations = [0.5]
当我尝试在我的PageViewController中使用self.view.layer时出现错误:
无法转换类型的值' CALayer' (0x104f57900)到' CAGradientLayer'
有人可以帮助我将页面视图控制器的背景设置为渐变吗?
由于
答案 0 :(得分:0)
您好,您可以创建一个UIView扩展,只需这样调用:
view.applyGradient(colours: [UIColor.red, UIColor.green])
这里是扩展代码
extension UIView {
func applyGradient(colours: [UIColor]) -> Void {
clipsToBounds = true
let gradient: CAGradientLayer = CAGradientLayer()
gradient.frame = self.bounds
gradient.colors = colours.map { $0.cgColor }
gradient.startPoint = CGPoint(x: 0, y: 0)
gradient.endPoint = CGPoint(x: 1, y: 0)
layer.insertSublayer(gradient, at: 0)
}
}
使用此代码,您可以应用于UIButtons,UILabels,从UIView扩展的任何内容
希望有所帮助