繁体   English   中英

把UIButton带到前层

[英]Bring UIButton to front layer

我知道有一种方法可以将子视图带到层次结构的前面。 但是,有没有一种方法可以将我放置在故事上的按钮并调用 function,这将使该按钮位于顶层,因此它不会被故事板中未添加的任何其他元素隐藏。

谢谢,

我对这个问题迟到了,但 Swift 3 回答这个问题还不算晚

斯威夫特 3

 view.bringSubview(toFront: theButton)

UIButton 是一个 UIView,因此您可以在按钮实例上调用-bringSubviewToFront:

uiview的显示顺序是它们的堆叠顺序。 可以将其更改为插入新的uiview ,在您的情况下是一个 uibutton 。

一种方法是创建IBOUtletuibutton并将该按钮实例添加为现有uiview之上的子视图/新视图。

代码:

[self.view insertSubview:<new Uiview> aboveSubview:<existing uiview>];

此外,如果您无法弄清楚uiview的顺序,那么您可以在xcode检查

  • 在调试窗口下以调试模式运行项目时,有一个按钮(在下图中突出显示) Debug View Hierarchy ,您需要单击它。 (在下图中突出显示)

调试窗口工具栏

  • 之后,您将能够看到当前实例在屏幕上呈现的所有views ,使用此功能您将能够了解您的新uiviewuiview stack order (如下所示)。

UI 视图层次结构

迅速

如果您正在使用的视图是同一视图中的隐藏视图,则以下内容非常有用。

superview?.bringSubviewToFront(self)

斯威夫特 5

就我而言,我不得不在一些按钮后面插入我的视图。 通过将其插入零位置,它被放置在按钮后面。

        self.view.insertSubview(self.mapView!, at: 0)  

我和你有同样的问题,我的一个朋友帮助了我

我可以在您声明按钮的视图控制器上使用此函数将我的按钮带到另一个子视图。

    override func viewDidLoad() {
        super.viewDidLoad()
        UIApplication.shared.keyWindow?.addSubview(chatButton)
    }
button.superview?.bringSubviewToFront(button)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM