渐变子图层不透明度

时间:2017-06-26 17:00:46

标签: ios swift

我写了我的函数,在我的主视图中插入一个图层(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 个答案:

答案 0 :(得分:0)

您应该能够创建对渐变图层的引用...

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
    }

}