我在一个已有的控制器上叠加了一个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将子视图前置:视图];
我不知道目标c,对斯威夫特来说是个新手,如果有人能给我一些启发,我会很感激的。
我的问题:
如何在Swift中更改UIView的z索引或堆栈顺序?
2条答案
按热度按时间xwbd5t1u1#
我建议查看
UIView
documentation,其中列出了几种用于操作子视图顺序的方法:在您的情况下,您可以尝试:
或者,因为您在IB中创建了
myGradientView
,所以您可以更改视图层次结构以更改显示在顶部的视图。希望能有所帮助。
1l5u6lss2#
上述的回答
第一个月
已更改:
在Swift 3.0中
在Swift 4.0和Swift 5.0中