为什么Google地图不适合我的UIView?

时间:2014-12-07 02:08:40

标签: ios objective-c xcode google-maps

我创建了一个UIView,我想将谷歌地图放入其中。但是,当我将GMSMapview添加到我的UIView时,GMSMapview的底部部分不会扩展到适合UIView。我仍然可以看到我的UIVIew的灰色部分。

为什么?

enter image description here

- (void)viewDidLoad 
{
    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868
                                                            longitude:151.2086
                                                                 zoom:6];
    GMSMapView *mapView = [GMSMapView mapWithFrame:self.googleMapView.bounds camera:camera];



    [self.googleMapView addSubview:mapView];
}

3 个答案:

答案 0 :(得分:9)

我怀疑您的界面不一定适合iPhone 6,因此当您在mapView中设置viewDidLoad帧时,虽然它最初适合您的googleMapView,但在自动之后布局发生时,googleMapView拉伸以适应屏幕,mapView保持相同的尺寸,这太小了。

要解决此问题,我建议您将代码移至viewDidLayoutSubviews:,以便mapView框架在googleMapView拉伸以填充屏幕后设置,例如:

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868
                                                            longitude:151.2086
                                                                 zoom:6];
    GMSMapView *mapView = [GMSMapView mapWithFrame:self.googleMapView.bounds camera:camera];
    [self.googleMapView addSubview:mapView];
}

答案 1 :(得分:0)

如果你在Xcode 7上遇到这个问题,对我来说有用的(自从我在Swift开发以来,接受的答案并不适用于我)是检查' Autoresize Subviews' GMSMapView及其父级(对我来说是UIStackView)的框。

答案 2 :(得分:0)

viewDidAppear

侧添加布局
while (in != "XXXX") {
    cout << "What do you want to name the file? Enter a name or enter XXXX to quit.\n";
    ...
}