2017-01-25 4 views
2

Meine App hat eine Gradientenschicht, die ich in Code gemacht habe. Wenn ich dies jedoch auf dem Bildschirm anzeige, werden alle anderen Komponenten abgedeckt und die Schaltflächen, Beschriftungen und Bilder ausgeblendet.Push-Gradient-Layer zum Hintergrund swift

Wie schiebe ich diese Ebene zurück, so dass der Hintergrund der Ansicht?

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    //creating color gradient 
    let topColor = UIColor(red: 69/255, green: 140/255, blue: 68/255, alpha: 1).CGColor 
    let bottomColor = UIColor(red: 143/255, green: 239/255, blue: 141/255, alpha: 1).CGColor 
    let gradientLayer = CAGradientLayer() 
    gradientLayer.frame = self.view.frame 
    gradientLayer.colors = [topColor,bottomColor] 
    gradientLayer.locations = [0.1,1.0] 
    self.view.layer.addSublayer(gradientLayer) 
} 

Antwort

3

Sie können eine Unterschicht in einen bestimmten Index einfügen.

self.view.layer.insertSublayer(gradientLayer, at: 0) 
+0

Dank mit Add für diesen Mann :) – pete800

+0

Sie sind willkommen :) – Yannick

0

Sie können Sie jeder Index jede der Subviews hinzufügen, wie:

self.view.layer.insertSublayer(yourLayer, at: 0) 

bei kann auch als atIndex verwendet werden, und es bedeutet, die indexPath der Ansicht (von die Ansichtshierarchie), in die Sie Ihre Unteransicht einfügen möchten.

+1

Bitte benutzen Sie den [Bearbeiten] Link erklären, wie dieser Code funktioniert und geben Sie nicht nur den Code, da eine Erklärung den zukünftigen Lesern eher hilft. Siehe auch [Antwort]. [Quelle] (http://stackoverflow.com/users/5244995) –

1

Wir können auch ein Subview unter oder über jede andere Ansichten insertSubview

self.view.insertSubview(subview1_name, belowSubview: subview2_name) 
self.view.insertSubview(subview1_name, aboveSubview: subview2_name) 
Verwandte Themen