我正在尝试在GMSMapView的中间添加十字准线。用户平移时,十字准线将不会随 map 一起移动。它将随相机一起移动。

我看了看Google map 指南,但似乎并没有谈论我感兴趣的叠加层类型。它说的只是添加随 map 移动的叠加层和形状。

因此,我尝试自己提出一些建议。我试图在情节提要的 map 视图顶部添加UIImageView。 (请注意,图像视图和 map 视图都在情节提要中,并且它们都是VC控制的view的直接子视图)

ios - 如何将不会随 map 移动的叠加层添加到GMSMapView?-LMLPHP

运行该应用程序时,我在 map 上的任何地方都没有看到十字准线。我查看了UI层次结构,并看到了以下内容:

ios - 如何将不会随 map 移动的叠加层添加到GMSMapView?-LMLPHP

小视图是带有十字准线的图像视图,您可以看到它前面还有3个视图。我认为这就是为什么十字准线没有显示出来的原因。从右到左,这三个视图分别是GMSVectorMapViewGMSUISettingsPaddingViewGMSUISettingsView

我不知道如何将图像视图置于最前面。我试图通过调用bringSubview(toFront:)将它放在前面。我试图用viewDidLoadviewDidAppear来称呼它,但是两次都没有执行。

如何使这样的覆盖层起作用?

最佳答案

您可以使用zPosition来实现

YourView.layer.zPosition = 1

通过这样做,您将视图的图层置于最前面的位置,而不是视图本身。因此,视图的位置不会改变。
self.view.bringSubview(toFront: YourView)

应该也可以,这可能是一个定时问题。

关于ios - 如何将不会随 map 移动的叠加层添加到GMSMapView?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45135468/

10-12 00:16
查看更多