ios - CAGradientLayer:其他 UIObject 未显示

标签 ios swift cagradientlayer

当我在 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/

相关文章:

iOS 将 Restful Web 服务的结果保存到 Core Data 的标准方法是什么?

ios - 断断续续的全屏退出过渡

ios - 如何添加跨越两个 View 的渐变?

ios - CAGradientLayer 没有从 View 中删除自己

ios - 向可滚动的 UITextView 添加渐变背景

ios - 如何在 IOS 运行时切换到语言后获取本地化的 Storyboard字符串?

iphone - 如何让 UICollectionViewFlowLayout 的单元格跨越多行?

json - 在 Swift 中将可选元素附加到 json 数组中

ios - 自定义运算符以简化 If-Let

ios - Swift:在 touchesBegan 中使用 switch 语句