如何将UIButton置于Mapbox视图的前面

3

我正在使用Mapbox SDK(SWIFT)并创建了自定义地图。我在storyboard中添加了一个按钮和一张图片到地图上,但是当我运行应用程序时,它似乎被隐藏在后面了。我尝试了所有的方法,包括view.bringSubview(toFront:UIimage),但是我无法使用这个函数来操作UIButton。我甚至尝试将地图发送到backView,但这会破坏我的自定义地图,并且仍然看不到我的图片或按钮。请帮忙解决!谢谢。


分享你的代码,这样有助于理解和解决你的问题。 - Satish
@marcoder - 当您将按钮和图像添加到地图视图中时,是否确保它们是地图视图的子视图?即在InterfaceBuilder中的大纲视图中,它们是否向右缩进以与地图视图对齐? - Magnas
4个回答

2
您可以使用以下方式控制子视图的可见性:
mapview.layer.zPosition = 1
button.layer.zPosition = 2
image.layer.zPosition = 2

您可以点击调试导航器 -> 查看UI层次结构,以直观地了解视图是如何分层的。 debug navigator

1
请查看下面的图片,确保您的视图层次结构如下,您的按钮应该是层次结构中的最后一个。

enter image description here

这是我的输出。

enter image description here

如果你的视图内部有按钮,你可以将其设置到最前面: ``` Self.view.bringSubviewToFront(button) ``` 或者 ``` button.superview?.bringSubviewToFront(button) ```
请确保你的按钮在Storyboard中没有隐藏,并在你的应用程序运行时捕获用户界面,并检查Storyboard的图层。

1

我无法更改地图视图层次结构,所以采取了不同的方法。

我在viewDidLoad函数中创建了我的地图视图:let mapView = MGLMapView(...),然后使用代码view.addSubview(mapView)使其可见。我需要类似地使我的按钮可见。

首先,我在我的ViewController类中插入了一个IBOutlet。

@IBOutlet weak var MyButton: UIButton!

这段代码引用了我在Storyboard中放置在mapView上的按钮。 然后,我通过添加代码将按钮添加到视图中:

view.addSubview(MyButton)

在添加完我的地图视图后。

1
你需要将它移动到视图的顶部。
Self.mapview.bringSubview(button)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接