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 的颜色?