Ios 如何将不随地图移动的覆盖添加到GMSMapView?

Ios 如何将不随地图移动的覆盖添加到GMSMapView?,ios,swift,google-maps,Ios,Swift,Google Maps,我尝试在代码 GMSMAPVIEW/COD>中间添加十字准线。当用户平移地图时,十字线不会随地图移动。它会随着相机移动 我看了谷歌地图指南,但它似乎没有谈到我感兴趣的那种覆盖。它所说的只是添加随地图移动的覆盖和形状 因此,我试着自己想办法。我试图在故事板的地图视图顶部添加一个UIImageView。(请注意,图像视图和地图视图都在故事板中,它们都是VC控制的视图的直接子视图) 当我运行应用程序时,我没有在地图上的任何地方看到十字线。我查看了UI层次结构,看到了以下内容: 小视图是带有十字线的

我尝试在代码<> GMSMAPVIEW/COD>中间添加十字准线。当用户平移地图时,十字线不会随地图移动。它会随着相机移动

我看了谷歌地图指南,但它似乎没有谈到我感兴趣的那种覆盖。它所说的只是添加随地图移动的覆盖和形状

因此,我试着自己想办法。我试图在故事板的地图视图顶部添加一个
UIImageView
。(请注意,图像视图和地图视图都在故事板中,它们都是VC控制的
视图
的直接子视图)

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

小视图是带有十字线的图像视图,如您所见,前面还有3个视图。我想这就是为什么十字准线没有显示出来。这三个视图从右到左依次为:
GMSVectorMapView
GMSUISettingsPaddingView
GMSUISettingsView

我不知道如何将图像视图带到前面。我试着通过调用
bringSubview(toFront:)
将它带到前台。我试图在
viewDidLoad
viewDidAppear
中调用它,但这两次都没有任何效果


我如何才能使这样的覆盖工作?

您可以使用zPosition来实现这一点

YourView.layer.zPosition = 1
通过这样做,您将把视图的图层放在最前面的位置,而不是视图本身。所以视图的位置不会改变

self.view.bringSubview(toFront: YourView)

也应该可以,这可能是时间问题。

太好了!成功了!然而,你的回答目前看起来像是一个评论。你能补充一点解释来解释为什么这样做有效,但是使用
bringSubview(toFront:)
不行吗?我不认为这是一个时间问题。我试着按下按钮来触发呼叫。我按下按钮后,一切都是加载,但它没有做任何事情。你认为我应该什么时候调用它?你能用树显示代码示例和视图层次结构吗?这里是repo:Crosshair应该是self.view的子视图,而不是地图