我无法找到任何相关信息,所以我在问。当我在其网站上使用Google提供的代码时,我在控制器中获得全屏显示。我希望能够在容器内显示它(固定宽度和高度)。
我正在使用swift,非常感谢你的帮助。以下是我从谷歌中提取的代码:
Override func viewDidLoad() {
super.viewDidLoad()
var camera = GMSCameraPosition.cameraWithLatitude(-33.86,
longitude: 151.20, zoom: 2)
var mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
mapView.myLocationEnabled = true
self.view = mapView
var marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(-33.86, 151.20)
marker.title = "Sydney"
marker.snippet = "Australia"
marker.map = mapView
// Do any additional setup after loading the view.
}
答案 0 :(得分:2)
您的地图将与您正在使用的视图一样大。你有2个选择。
2
而不是将GMSMapView分配给某个视图使用
view.insertSubview(mapView, atIndex:0)
请记住,在这种情况下,您必须为GMSMapView创建一个框架
var mapView = GMSMapView.mapWithFrame(CGRectMake(...))
关于这一点的好处是你可以在地图上方添加其他组件(如某些按钮,标签等),这是第一种方法无法实现的。
这是我使用autolayout进行的方式。我在故事板中创建了一些视图,给了它约束,因此它会根据屏幕大小调整大小。 然后我初始化我的地图视图并使用我的自动调整视图的大小并将我的mapView插入此视图。
mapView_ = [[GMSMapView alloc] initWithFrame:self.viewForMap.bounds];
mapView_.delegate = self;
mapView_.camera = camera;
[self.viewForMap insertSubview:mapView_ atIndex:0];
是的我知道这是Objective-C,但这只是一个例子。