CAGradientLayer 不改变背景颜色

Posted

技术标签:

【中文标题】CAGradientLayer 不改变背景颜色【英文标题】:CAGradientLayer not changing the background color 【发布时间】:2017-08-16 12:36:35 【问题描述】:

我想为我的 UIView 创建一个渐变作为背景色。我写了这段代码

gradient.colors = [UIColor.blue,UIColor.yellow]
        gradient.locations = [0.0 , 1.0]
        gradient.startPoint = CGPoint(x: 0.0, y: 1.0)
        gradient.endPoint = CGPoint(x: 1.0, y: 1.0)
        gradient.frame = CGRect(x: 0.0, y: 0.0, width: self.view.frame.size.width, height: self.view.frame.size.height)


self.view.layer.insertSublayer(gradient, at: 0)

但在 Interface Builde 上设置的视图仍然相同。如果我在代码之前添加这一行

self.view.backgroundColor = UIColor.clear

背景颜色变为白色

【问题讨论】:

【参考方案1】:
        let gradient: CAGradientLayer = CAGradientLayer()

        gradient.colors = [UIColor.blue.cgColor, UIColor.yellow.cgColor]
        gradient.locations = [0.0 , 1.0]
        gradient.startPoint = CGPoint(x: 0.0, y: 1.0)
        gradient.endPoint = CGPoint(x: 1.0, y: 1.0)
        gradient.frame = CGRect(x: 0.0, y: 0.0, width: self.view.frame.size.width, height: self.view.frame.size.height)

        self.view.layer.insertSublayer(gradient, at: 0)

试试这个代码。它适用于我 swift 3

【讨论】:

好的,很高兴它解决了您的问题 :) 您也可以为我的回答投票吗? @cole - 以供将来参考,当您发布答案时,请尝试包含 why - 而不仅仅是“在这里,此代码有效”。 好的,感谢您的反馈。下次会记住的

以上是关于CAGradientLayer 不改变背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

使用 CAGradientLayer 类更改 UiView IOS 的渐变背景图层颜色

如何像屏幕保护程序一样更改 CAGradientLayer 的颜色?

如何将 CAGradientLayer 应用于 UINavigationController 背景

使用滑块实时更改 CAGradientLayer 的颜色

如何更改 CAGradientLayer 色点?

背景颜色渐变不覆盖整个视图 Xcode