将UIButton带到前层

时间:2014-04-01 14:43:44

标签: ios objective-c uibutton

我知道有一种方法可以将子视图带到层次结构的前面。但是有一种方法可以将一个按钮放在一个故事上并调用一个函数,使该按钮成为顶层,这样它就不会被添加到故事板中的任何其他元素隐藏。

谢谢,

6 个答案:

答案 0 :(得分:12)

我对这个问题迟到了,但是Swift 3回答它还为时不晚

Swift 3

pinView!.pinTintColor = MKPinAnnotationView.purplePinColor()

答案 1 :(得分:4)

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

答案 2 :(得分:3)

uiview按照堆叠顺序显示。可以改变这一点来说是插入新的uiview,在你的情况下是一个uibutton。

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

<强> CODE:

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

此外,如果您无法确定uiview的顺序,那么您可以在xcode

中查看
  • 在调试窗口下以调试模式运行项目时,有一个按钮(在下图中突出显示)调试视图层次结构,您需要单击该按钮。 (在下图中突出显示)

Debug window tool bar

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

UI View Hierarchy

答案 3 :(得分:1)

夫特

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

superview?.bringSubviewToFront(self)

答案 4 :(得分:1)

快捷键5

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

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

答案 5 :(得分:0)

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

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

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