Swift 如何更改UIView的z索引或堆栈顺序?
为了创建渐变层,我在现有控制器的顶部堆叠了一个UIView。然而,当我加载视图时,新的UIView(自然地)位于所有内容之上 相关代码:Swift 如何更改UIView的z索引或堆栈顺序?,swift,uiview,ios8,z-index,Swift,Uiview,Ios8,Z Index,为了创建渐变层,我在现有控制器的顶部堆叠了一个UIView。然而,当我加载视图时,新的UIView(自然地)位于所有内容之上 相关代码: class ViewController: UIViewController { @IBOutlet weak var myGradientView: GradientView! override func viewDidLoad() { super.viewDidLoad() }
class ViewController: UIViewController {
@IBOutlet weak var myGradientView: GradientView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidLayoutSubviews() {
self.myGradientView.gradientWithColors(UIColor.whiteColor(), UIColor.blueColor())
}
}
我已经做了一些搜索,我发现可以解释如何使用:
[父视图将子视图带到前面:视图]
我不知道objective-c,而且我对Swift还相当陌生,如果有人能对此有所了解,我将不胜感激
我的问题:
如何在Swift中更改UIView的z索引或堆栈顺序?我建议查看
UIView
,其中列出了几种用于操作子视图顺序的方法:
在您的情况下,您可以尝试:
self.view.sendSubviewToBack(myGradientView)
// self is your view controller in this case.
或者,由于您在IB中创建了myGradientView
,因此可以更改视图层次结构以更改显示在顶部的视图。下面是一张图片来说明:
希望能有所帮助。以上的答案
将SubViewToFront(:)发送SubViewToBack(:)
已更改:
在Swift 3.0中
view.sendSubview(toBack:yourUIView)
view.bringSubview(toFront:yourUIView)
view.sendSubviewToBack(yourUIView)
view.bringSubviewToFront(yourUIView)
在Swift 4.0和Swift 5.0中
view.sendSubview(toBack:yourUIView)
view.bringSubview(toFront:yourUIView)
view.sendSubviewToBack(yourUIView)
view.bringSubviewToFront(yourUIView)
这是两种不同的语言@Benno担心,我需要学习如何阅读。。。那个更新让我觉得facepalm真的很难。我不敢相信我没有想到如果你有5个子视图,你想把第二个子视图移到倒数第二子视图怎么办?添加一些解释,说明这个答案如何帮助解决当前问题