Dan*_*ieu 37 z-index uiview swift ios8
我在现有控制器的顶部堆叠了一个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())
}
}
Run Code Online (Sandbox Code Playgroud)
我做了一些搜索,我在Objective-C中找到了一个解释使用的答案:
[parentView bringSubviewToFront:view];
我不知道Objective-c并且对Swift来说是相当新的,如果有人可以对此有所启发,我会很感激.
如何在Swift中更改UIView的z索引或堆栈顺序?
ABa*_*ith 74
我建议查看UIView 文档,其中列出了几种方法来操作子视图的顺序:
Run Code Online (Sandbox Code Playgroud)bringSubviewToFront(_:) sendSubviewToBack(_:) removeFromSuperview() insertSubview(_:atIndex:) insertSubview(_:aboveSubview:) insertSubview(_:belowSubview:) exchangeSubviewAtIndex(_:withSubviewAtIndex:)
在您的情况下,您可以尝试:
self.view.sendSubviewToBack(myGradientView)
// self is your view controller in this case.
Run Code Online (Sandbox Code Playgroud)
或者,因为您myGradientView在IB中创建了IB,所以您可以更改视图层次结构以更改顶部显示的视图.这是一张图片来说明:

希望有所帮助.
以上答案
bringSubviewToFront(_:)
sendSubviewToBack(_:)
已经改变:
在Swift 3.0中
view.sendSubview(toBack:yourUIView)
view.bringSubview(toFront:yourUIView)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39281 次 |
| 最近记录: |