【问题标题】:Swift PageViewController gradient backgroundSwift PageViewController 渐变背景
【发布时间】:2017-02-27 12:58:17
【问题描述】:

我有一个 PageViewController,需要为其设置渐变背景。 在普通 ViewController 中使用渐变背景时,我使用以下内容:

let layer = self.layer as! CAGradientLayer
layer.colors = [FirstColor.cgColor, SecondColor.cgColor]
layer.locations = [0.5]

当我尝试在 PageViewController 中使用 self.view.layer 时出现错误:

无法将“CALayer”(0x104f57900) 类型的值转换为“CAGradientLayer”

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

谢谢

【问题讨论】:

    标签: ios swift gradient uipageviewcontroller layer


    【解决方案1】:

    您好,您可以创建一个 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)
        }
    }
    

    使用此代码,您可以应用于 UIButton、UILabels 以及从 UIView 扩展的任何内容

    希望对你有帮助

    【讨论】: