更改Google地图尺寸iOS Swift

时间:2015-03-20 08:10:48

标签: ios google-maps swift

我无法找到任何相关信息,所以我在问。当我在其网站上使用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.
    }

1 个答案:

答案 0 :(得分:2)

您的地图将与您正在使用的视图一样大。你有2个选择。

  • 1个
    创建特定大小的子视图,并使用该视图为您的GMSMapView,与您一样。
  • 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,但这只是一个例子。