当我在 iOS 上使用 CAGradientLayer 为 View Controller 设置渐变时,我之前使用界面生成器放置的对象不会显示。当我拿走gradientLayer函数时,这些对象就会出现。另外,当我以编程方式添加这些对象作为 subview 时,它们会显示在 iOS 模拟器中。这是怎么回事?这是我的渐变层代码:
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)
}
最佳答案
原因很简单,当你通过这一行将元素添加到IB中时,渐变层覆盖了所有元素
self.view.layer.addSublayer(gradientLayer)
所以你可以像这样将其插入到它们下面
self.view.layer.insertSublayer(gradientLayer,at:0)
关于ios - CAGradientLayer:其他 UIObject 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51314393/