- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
self.mapView.frame = self.view.bounds;
self.mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
CLLocationCoordinate2D startCoord = CLLocationCoordinate2DMake(36.7472, -95.9594);
MKCoordinateRegion adjustedRegion = [self.mapView regionThatFits:MKCoordinateRegionMakeWithDistance(startCoord, 10000*1609.344, 10000*1609.344)];
[self.mapView setRegion:adjustedRegion animated:YES];
}
这就是我现在拥有的代码。当我将iPad的方向从横向更改为纵向时,地图视图的大小不会发生变化。我希望它能填满整个视图。我试过搜索谷歌和stackoverflow寻求解决方案,但我没有运气。
非常感谢任何帮助。
答案 0 :(得分:10)
-(void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
self.mapView.frame = self.view.bounds;
}
这将确保每当触发视图控制器布局时(例如,在自动旋转时),地图框将调整到视图边界。
您实际上可以从viewWillAppear中取出设置的框架线,因为viewWillLayoutSubviews在初始设置时运行。
答案 1 :(得分:6)
如果您使用的是Autolayout,您可以: - 转到Storyboard,然后单击mapView。 - 在Storyboard底部查找分段控件,然后单击“Pin”段。在此处,添加左,右,上和下的约束。这应该做你想要的。
非常简单,无需代码。