12
votes

I'm developing an iOS app with Google Maps iOS SDK with storyboard. On my main view controller in "viewDidLoad" I have implemented a GMSMapView and shows it by

self.view = mapView_;

and everything goes fine. Now I want to add a UIView or UIButton over the map, like myLocation button style. There is any solution to add it and use it via storyboard? I've overlayed objects on the map by code but i really need autolayout so manage it via Storyboard would be nice. Thanks.

5
Kindly check my answer there: stackoverflow.com/a/29732806/2086889DevSherif

5 Answers

14
votes

Try this (making sure you set the mapView frame to a value different than CGRectZero (which works for self.view=mapView only)):

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

As Saxon said, inserting the view at index 0 will set the rest of the objects in front.

4
votes

Actually, this is the only way that worked for me after trying everything out there

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

Good luck

1
votes

Do you want to have a location button with your own custom image? or what? Have you tried with: mapview_.settings.myLocationButton = YES; Can you be a little more specific with what you want? I'm also using GM SDK for iOS, so maybe I can help you.

0
votes

You could try something like this:

[self.view insertSubview: mapView_ atIndex: 0];

This will insert the map as a subview of the root view (instead of replacing the root view), leaving your other views (ie buttons etc) in place. Inserting it at index 0 will put it underneath the other views.

0
votes

Add your map as a subview

 GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:coordinate.latitude longitude:coordinate.longitudeoom:6];

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

Now you can drag and drop your whatever your UIcontrol like button , textfield it will visible over the mapview or you can also add as subview like above.