如何将superview带到前面?

时间:2015-10-08 11:36:13

标签: ios uiview bringtofront

通常情况下,开发人员会尝试将子视图放在前面。相反,如何将superview带到前面呢?

我正在寻找bringSubviewToFront(_:)的反向。它应该看起来像bringSuperviewToFront(_:)

3 个答案:

答案 0 :(得分:2)

我认为你不能那样做。视图按层布局,每个子视图层都是超视图层的一部分。您想要实现的效果可以通过隐藏/删除要获得置于前面效果的视图的所有子视图来实现。

这适用于子视图,因为通常您希望根据图层位置在同一父视图中显示/隐藏子视图!

答案 1 :(得分:2)

  

我正在寻找bringSubviewToFront( :)的反向。它应该看起来像bringSuperviewToFront(:)

这不存在。不要将按钮设为子视图,而是创建某个容器的子视图和按钮子视图。然后你可以调整它们的相对z位置以适合你的目的。

答案 2 :(得分:0)

本着不那么粗鲁的精神。

func bringSubviewToFront(view: UIView) {
    let superview = view.superview
    superview?.addSubview(view)
}

这将把它带到前面。如:

bringSubviewToFront(mySubview)

上面的代码所做的是将视图与superview的层次结构中的任何位置分离,并将其重新附加到所有子视图的顶部。这样可以将它带到你想要的前面。如果视图不是层次结构的一部分,则该函数不执行任何操作。