CAGradientLayer:其他UIObject未显示

时间:2018-07-12 21:01:29

标签: ios swift cagradientlayer

当我在iOS上使用CAGradientLayer为我的视图控制器设置渐变时,以前使用界面生成器放置的对象不会显示。当我移开gradientLayer函数时,这些对象就会显示出来。另外,当我以编程方式将这些对象添加为子视图时,它们会显示在iOS模拟器中。这是怎么回事?这是我的gradientLayer代码:

func setUpGradient(){
    let topColor=UIColor(red: 255/255, green: 149/255, blue: 56/255,alpha: 1)
let bottomColor=UIColor(red: 216/255, green: 57/255, blue: 177/255, 
alpha: 1)
    let gradientColors: [CGColor]=[topColor.cgColor,bottomColor.cgColor]
    var gradientLayer = CAGradientLayer()
    gradientLayer.frame = self.view.bounds
    gradientLayer.colors=gradientColors
    gradientLayer.startPoint=CGPoint(x: 0, y:0)
    gradientLayer.endPoint=CGPoint(x: 0, y:1)
    self.view.layer.addSublayer(gradientLayer)
}

1 个答案:

答案 0 :(得分:0)

原因很简单,当您通过此行将它们添加到IB中时,渐变层将覆盖所有元素

self.view.layer.addSublayer(gradientLayer)

因此您可以像这样将其插入到他们下方

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