当我在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)
}
答案 0 :(得分:0)
原因很简单,当您通过此行将它们添加到IB中时,渐变层将覆盖所有元素
self.view.layer.addSublayer(gradientLayer)
因此您可以像这样将其插入到他们下方
self.view.layer.insertSublayer(gradientLayer,at:0)