如何将UIButton带到Mapbox视图的前面

时间:2018-11-23 02:33:38

标签: ios swift mapbox mglmapview

我正在使用Mapbox SDK(SWIFT)并创建了自定义地图。我在情节提要中的地图上添加了按钮和图像,但是当我运行该应用程序时,它似乎隐藏在后面。我尝试了所有操作,包括view.bringSubview(toFront:UIimage),但无法将此功能与UIButton一起使用。我什至尝试将地图发送到backView,但是它弄乱了我的自定义地图,但仍然看不到我的图像或按钮。请帮忙!谢谢。

4 个答案:

答案 0 :(得分:1)

您需要将其置于视图顶部

Self.mapview.bringSubview(button)

答案 1 :(得分:1)

请检查下图,确保您的“视图”层次结构(紧随其后的按钮)应位于层次结构的最后

enter image description here

这是我的输出

enter image description here

或者如果您在视图内部有按钮,则可以将其设置为前面的

Self.view.bringSubviewToFront(按钮) 要么 button.superview?.bringSubviewToFront(button)

确保您的按钮未在情节提要中隐藏,并且当您的应用运行时,请捕获用户界面并检查情节提要的层。

答案 2 :(得分:0)

您还可以使用以下方法控制子视图的可见性:

mapview.layer.zPosition = 1
button.layer.zPosition = 2
image.layer.zPosition = 2

您可以单击debug导航器-> View UI层次结构以直观地了解如何对视图进行分层。

debug navigator

答案 3 :(得分:0)

我无法更改地图视图的视图层次结构,因此我采用了另一种方法。

我使用let mapView = MGLMapView(...)在viewDidLoad函数中创建了地图视图,然后使用代码view.addSubview(mapView)使我的地图视图可见。我必须同样使按钮可见。

首先,我将IBOutlet插入到ViewController类中

@IBOutlet weak var MyButton: UIButton!

引用了我放置在情节提要中的mapView上方的按钮。 然后,我通过添加

将按钮添加到视图中
view.addSubview(MyButton)

在添加我的mapView之后。