如何在iOS中使用Autoresizing来适应mapview?

问题描述:

现在我老项目工作,客户希望增加更新对project.I新加入的viewController用于显示mapview,但这MapView类不能适合喜欢iphone6在屏幕上,etc.This应用程序使用自动尺寸调整大小不同的看法。我为屏幕上的mapview设置了autoresize属性,我尝试了编程和xib.But,但它不工作。我该如何解决这个问题?请帮助我。如何在iOS中使用Autoresizing来适应mapview?

_mapView.autoresizesSubviews = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

Autoresizing property for Mapview

enter image description here

enter image description here

+0

您是否试图以编程方式设置mapview框架?同时检查是否选中了mapview的“Clip Subviews”和“Autoresize Subview”属性。 。 –

+0

剪辑子视图”和‘自动调整子视图’总是检查我直接添加到MapView类界面生成器不编程 – IKKA

+0

尝试以编程方式设置MapView类的框架[yourMapView SETFRAME:self.view.bounds]。 –

你应该使用自动布局和设置限制。

自动布局是默认现在这样,如果你还是想用支柱工作,弹簧,你需要从的.xib的文件检查器将其关闭:

turning off auto layout from file inspector

由于使用autoLayout不作为旧项目的一个选项和迁移是一项艰巨的任务,我强烈建议您通过代码设置mapView的框架。

例如,根据提供的屏幕截图,视图有一个搜索栏,它位于顶部,而mapView必须占据剩下的全部空闲空间。

  1. mapViewmapViewsearchBar
  2. 集合的帧像

    CGSize superViewFrameSize = self.view.bounds.size; 
    CGSize searchBarFrameSize = self.searchBar.bounds.size; 
    CGRect mapviewFrame = CGRect mapviewFrame = CGRectMake(0, searchBarFrameSize.height, superViewFrameSize.width, superViewFrameSize.height - searchBarFrameSize.height); 
    self.mapView.frame = mapviewFrame; 
    

的代码创建网点取superViewsearchBar的大小:您可以按如下代码时并将其保存在临时变量中。然后创建一个CGRect变量来保存mapView的新帧。将mapView放置在searchBar以下,方法是将其起点设置为searchBar的高度。将宽度mapView设置为与其superView相同。将mapView的高度设置为searchBar从其superView降低的高度。

希望这会有所帮助:)