Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改谷歌地图大小iOS Swift_Ios_Google Maps_Swift - Fatal编程技术网

更改谷歌地图大小iOS Swift

更改谷歌地图大小iOS Swift,ios,google-maps,swift,Ios,Google Maps,Swift,我在这上面找不到任何东西,所以我在问。当我在谷歌网站上使用谷歌提供的代码时,我会在控制器中得到一张全屏地图。我希望能够在容器中显示它(固定宽度和高度) 我正在使用swift,非常感谢您的帮助。下面是我从谷歌提取的代码: Override func viewDidLoad() { super.viewDidLoad() var camera = GMSCameraPosition.cameraWithLatitude(-33.86, lon

我在这上面找不到任何东西,所以我在问。当我在谷歌网站上使用谷歌提供的代码时,我会在控制器中得到一张全屏地图。我希望能够在容器中显示它(固定宽度和高度)

我正在使用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
    创建特定大小的子视图,并用同样的方法将该视图用于GMSMapView
  • 2
    而不是将GMSMapView指定给某些视图使用

    view.insertSubview(mapView, atIndex:0)
    
    记住,在这种情况下,您必须为GMSMapView创建一个框架

    var mapView = GMSMapView.mapWithFrame(CGRectMake(...))
    
    这样做的好处是,如果愿意,您可以在地图上方添加其他组件(一些按钮、标签等),这在第一种方法中是不可能的

编辑 这是我使用自动布局的方式。我在故事板中创建了一些视图,对其进行了约束,使其能够根据屏幕大小调整大小。 然后我初始化我的地图视图,使用我的自动调整大小视图的大小,并将我的地图视图插入到这个视图中

mapView_ = [[GMSMapView alloc] initWithFrame:self.viewForMap.bounds];
mapView_.delegate = self;
mapView_.camera = camera;
[self.viewForMap insertSubview:mapView_ atIndex:0];

是的,我知道这是Objective-C,但这只是一个示例。

使用CGRectMake,其中包含要显示地图的容器的宽度和高度,而不是GcRectZero@milo526如果他将地图指定给特定的视图,它将始终延伸到该视图的大小,这就是为什么它与CGRectZero一起工作,当我通过CGRectMake(30,30,30,30)时,没有任何变化。我遗漏了什么吗?@ksa\u coder yes而不是
self.view=mapView
您需要使用
self.view.insertSubview(mapView,atIndex:0)
谢谢@IxPaka。我们已经寻找这个解决方案大约一个小时了。