我创建了一个UIView,我想将谷歌地图放入其中。但是,当我将GMSMapview添加到我的UIView时,GMSMapview的底部部分不会扩展到适合UIView。我仍然可以看到我的UIVIew的灰色部分。
为什么?
- (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];
}
答案 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";
...
}