渐变子层不透明度
Posted
技术标签:
【中文标题】渐变子层不透明度【英文标题】:Gradient sublayer opacity 【发布时间】:2017-06-26 17:00:46 【问题描述】:我编写了函数来在我的主视图中插入一个图层(addsubview),我给它 vars 来管理其渐变背景的大小和颜色,不透明度为 1。我插入了一个索引等...
现在,我想通过操作来管理这个渐变(背景)子层的不透明度: 我可以删除它,使用子视图的一般不透明度...但不可能将这个子层的不透明度定位在索引 0。
有什么想法吗?
在我的 viewdidLoad 函数中:
func insertHeader ()
self.view.addSubview(TopMenuView)
TopMenuView.frame.size.width = self.view.bounds.size.width
let gradient:CAGradientLayer = CAGradientLayer()
let colorTop = UIColor(RGBa).cgColor
let colorBottom = UIColor(RGBa).cgColor
//etc
gradient.opacity = 1.0
TopMenuView.layer.insertSublayer(gradient, at: 0)
后来,无法针对此子层渐变的不透明度... 我可以管理 TopMenuView.layer 的整个不透明度,但不能管理它的“背景渐变层”
【问题讨论】:
【参考方案1】:您应该能够创建对渐变层的引用...
class ViewController: UIViewController
var topMenuGradient = CAGradientLayer()
override func viewDidLoad()
super.viewDidLoad()
self.view.addSubview(TopMenuView)
TopMenuView.frame.size.width = self.view.bounds.size.width
let colorTop = UIColor(RGBa).cgColor
let colorBottom = UIColor(RGBa).cgColor
//etc
topMenuGradient.frame = TopMenuView.bounds
topMenuGradient.opacity = 0.5
TopMenuView.layer.insertSublayer(topMenuGradient, at: 0)
@IBAction func btnTapped(_ sender: Any)
topMenuGradient.opacity = 0.1
【讨论】:
谢谢。它完美无缺。我不知道为什么我专注于 viewdidLoad 函数并忘记了基础知识:创建一个参考让...没关系。感谢您的帮助。以上是关于渐变子层不透明度的主要内容,如果未能解决你的问题,请参考以下文章