我在我的应用中使用Google Map iOS SDK,但我遇到了这个问题:
当我像以下代码一样使用Google的iOS示例时,它可以正常工作,但它会以全屏模式加载,因为它会占用view
中的主ViewController
。
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868
longitude:151.2086
zoom:6];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = camera.target;
marker.snippet = @"Hello World";
marker.map = mapView;
self.view = mapView;
但我需要它在subView中,你知道因为工具栏或顶栏等等。
我将subView添加到myViewController
并创建IBOUtle
然后我将mapView链接到它:
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868
longitude:151.2086
zoom:6];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = camera.target;
marker.snippet = @"Hello World";
marker.map = mapView;
mySubView = mapView;
但是视图将是白色/空的没有加载地图/或添加为subView,所以我尝试了以下操作,将子视图类型从UIView
更改为GMSMapView
,这样就可以显示和加载地图
我不能像GMSMarker
那样使用此地图执行任何操作的奇怪问题,或GMSCameraPosition
未显示您的正确位置/无效。
答案 0 :(得分:4)
如果您的商店是UIView 并且您在代码中制作地图,则必须添加它。
的OBJ-C:
mapView.frame = mySubview.bounds;
[mySubview addSubview:mapView];
夫特:
mapView.frame = mySubview.bounds;
mySubview.addSubview(mapView)
如果您的OUTLET是mapview ,那么使用它并且不要制作新的
mapView = (GMSMapView*)mySubView;