Google Maps iOS SDK - 在GMSMapView上添加UIView/UIButton

12

我正在使用Google Maps iOS SDK和Storyboard开发一个iOS应用程序。 在我的主视图控制器中的“viewDidLoad”中,我已经实现了一个GMSMapView,并通过它进行显示

self.view = mapView_;

一切都进展顺利。现在我想在地图上添加一个UIView或UIButton,就像myLocation按钮样式那样。有没有办法通过storyboard添加并使用它?我已经通过代码将对象覆盖在地图上,但我真的需要自动布局,所以通过Storyboard管理它会很好。 谢谢。


请检查我的答案: https://dev59.com/ImQn5IYBdhLWcg3wr406#29732806 - DevSherif
5个回答

14

尝试这个(确保您将mapView的框架设置为与CGRectZero不同的值(这仅适用于self.view = mapView)):

mapView = [GMSMapView mapWithFrame:self.view.bounds camera:camera];
[self.view insertSubview:mapView atIndex:0];

正如Saxon所说,将视图插入索引0将使其余的对象置于前面。


这个有效 ty 和 @FabioM 检查答案,因为它是正确的。 - AndroidFreak

4

实际上,在尝试所有方法后,这是我唯一有效的方法。

[self.view insertSubview:self.yourUIImageview aboveSubview:self.mapView]

祝你好运


1
你想要一个带有自定义图像的位置按钮吗?或者其他什么?你尝试过这个吗:mapview_.settings.myLocationButton = YES; 你能更具体地说明你想要什么吗?我也在使用iOS的GM SDK,也许我可以帮助你。

3
这更适合作为一条评论。 - techuser soma
1
我想在地图上添加自定义用户界面对象,例如Google Maps官方iOS应用程序中的搜索栏和联系按钮。 - FabioM

0
将您的地图作为子视图添加。
 GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:coordinate.latitude longitude:coordinate.longitudeoom:6];

mapView = [GMSMapView mapWithFrame:self.view.bounds camera:camera];[self.view insertSubview:mapView atIndex:0];

现在您可以拖放您的任何UI控件,如按钮、文本框,它将显示在地图视图上,或者您也可以像上面那样添加为子视图。

0
你可以尝试这样做:
[self.view insertSubview: mapView_ atIndex: 0];

这将把地图插入到根视图的子视图中(而不是替换根视图),从而保留您的其他视图(例如按钮等)。在索引0处插入它将把它放在其他视图下面。

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