Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何更改UIView的z索引或堆栈顺序?_Swift_Uiview_Ios8_Z Index - Fatal编程技术网

Swift 如何更改UIView的z索引或堆栈顺序?

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() }

为了创建渐变层,我在现有控制器的顶部堆叠了一个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())
    }
}
我已经做了一些搜索,我发现可以解释如何使用:

[父视图将子视图带到前面:视图]

我不知道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个子视图,你想把第二个子视图移到倒数第二子视图怎么办?添加一些解释,说明这个答案如何帮助解决当前问题