Swift PageViewController渐变背景

时间:2017-02-27 12:58:17

标签: ios swift gradient uipageviewcontroller layer

我有一个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'

有人可以帮助我将页面视图控制器的背景设置为渐变吗?

由于

1 个答案:

答案 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扩展的任何内容

希望有所帮助