我已经在现有控制器的顶部堆叠了一个UIView,以创建一个梯度层。但是,当我加载视图时,新的UIView(自然)在所有的东西之上。
相关代码:
class ViewController: UIViewController { @IBOutlet weak var myGradientView: GradientView! override func viewDidLoad() { super.viewDidLoad() } override func viewDidLayoutSubviews() { self.myGradientView.gradientWithColors(UIColor.whiteColor(),UIColor.blueColor()) } }
我做了一些搜索,我发现an answer in Objective-C说明使用:
[parentView bringSubviewToFront:view];
我不知道目标c,对于斯威夫特来说,这是相当新鲜的,如果有人可以在这里发光,我将不胜感激。
我的问题:
如何在Swift中更改UIView的z索引或堆栈顺序?
我会推荐在UIView
documentation中查看,列出几种方法来操纵子视图的顺序:
原文链接:https://www.f2er.com/swift/320290.html06000
在你的情况下,你可以试试:
self.view.sendSubviewToBack(myGradientView) // self is your view controller in this case.
或者,因为您在IB中创建了myGradientView,您可以更改视图层次结构,以更改顶部显示的视图。这是一张图说明:
希望有帮助。