2

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

4

4 回答 4

1

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

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

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

@IBOutlet weak var MyButton: UIButton!

其中引用了我在情节提要中放置在我的 mapView 上的按钮。然后我通过添加将我的按钮添加到视图中

view.addSubview(MyButton)

在添加我的 mapView 之后。

于 2019-03-26T11:06:33.480 回答
1

你需要把它带到视图的顶部

Self.mapview.bringSubview(button)
于 2018-11-23T02:36:53.377 回答
1

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

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

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

调试导航器

于 2018-11-23T04:33:18.467 回答
1

请检查下图确保您的视图层次结构遵循您的按钮应该在层次结构中的最后一个

在此处输入图像描述

这是我的输出

在此处输入图像描述

或者如果您在视图中有按钮,那么您可以将其设置为前面

Self.view.bringSubviewToFront(button)button.superview?.bringSubviewToFront(button)

确保您的按钮没有隐藏在 Storyboard 中,并且当您的应用程序运行时,然后捕获用户界面并检查 Storyboard 的图层。

于 2018-11-23T12:00:29.317 回答