2017-06-26 4 views
0

Ich schrieb meine Funktion zum Einfügen einer Schicht (addsubview) zu meiner Hauptansicht, ich gab es Vars, Größe und Farben für seine Gradienten Hintergrund mit einer Deckkraft bei 1 zu verwalten. Ich eingefügt mit einem Index etc ...Gradient Unterschicht Opazität

Nun würde ich gerne die Opazität dieser Farbverlauf (Hintergrund) Sublayer durch Aktionen verwalten: Ich bin in der Lage, es zu entfernen, spielen mit der allgemeinen Opazität der Unteransicht ... aber unmöglich, die Deckkraft von diese Unterschicht bei Index 0.

Irgendeine Idee?

in meiner 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) 


} 

Und später, unfähig, die Opazität dieser Unterschicht Steigung zum Ziel ... ich die ganze Opazität des TopMenuView.layer verwalten kann, aber nicht sein „Hintergrund Gradientenschicht "

Antwort

0

Sie sollten einen Verweis auf die Gradientenschicht erstellen können ...

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

Vielen Dank. es funktioniert perfekt. Ich weiß nicht, warum ich mich auf die Funktion viewdidLoad konzentriert habe und die Grundlagen vergessen habe: Erstelle eine Referenz, lass ... Vergesst es. Danke für Ihre Hilfe. – Creanomy