2017-06-26 143 views
0

我寫了我的函數來插入一個圖層(addsubview)到我的主視圖,我給它增值管理大小和顏色的漸變背景,不透明度爲1我插入索引等...梯度底層不透明

現在,我想通過操作來管理此漸變(背景)子圖層的不透明度: 我可以將其刪除,使用子視圖的一般不透明度播放...但不可能將目標的不透明度此索引爲0的子圖層。

任何想法?

在我viewDidLoad中FUNC:

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的整體透明度而不是它的「背景漸變層「

回答

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 
    } 

} 
+0

謝謝你。它工作完美。我不知道爲什麼我專注於viewdidLoad功能,並忘記了基本知識:創建一個參考讓... 沒關係。謝謝你的幫助。 – Creanomy