通常情况下,开发人员会尝试将子视图放在前面。相反,如何将superview带到前面呢?
我正在寻找bringSubviewToFront(_:)
的反向。它应该看起来像bringSuperviewToFront(_:)
答案 0 :(得分:2)
我认为你不能那样做。视图按层布局,每个子视图层都是超视图层的一部分。您想要实现的效果可以通过隐藏/删除要获得置于前面效果的视图的所有子视图来实现。
这适用于子视图,因为通常您希望根据图层位置在同一父视图中显示/隐藏子视图!
答案 1 :(得分:2)
我正在寻找bringSubviewToFront( :)的反向。它应该看起来像bringSuperviewToFront(:)
这不存在。不要将按钮设为子视图,而是创建某个容器的子视图和按钮子视图。然后你可以调整它们的相对z位置以适合你的目的。
答案 2 :(得分:0)
本着不那么粗鲁的精神。
func bringSubviewToFront(view: UIView) {
let superview = view.superview
superview?.addSubview(view)
}
这将把它带到前面。如:
bringSubviewToFront(mySubview)
上面的代码所做的是将视图与superview的层次结构中的任何位置分离,并将其重新附加到所有子视图的顶部。这样可以将它带到你想要的前面。如果视图不是层次结构的一部分,则该函数不执行任何操作。