将渐变层推到背景 swift

Push gradient layer to background swift

我的应用程序有一个我用代码制作的渐变层。然而,当我在屏幕上显示它时,它覆盖了所有其他组件并隐藏了我的按钮、标签和图像。

如何将此图层推回以使其成为视图的背景?

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)   
}

您可以在特定索引处插入子层。

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

您可以将您在任何索引处的任何子视图添加为:

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

at 也可以用作 atIndex,它表示视图的 indexPath(来自视图层次结构),您可以在其中想要添加您的子视图。

我们还可以使用 insertSubview

在任何其他视图下方或上方添加子视图
self.view.insertSubview(subview1_name, belowSubview: subview2_name)
self.view.insertSubview(subview1_name, aboveSubview: subview2_name)