GMSMapView不占用完整边界

时间:2016-06-26 14:16:34

标签: ios google-maps autolayout

我在XCode上设计了以下布局:

enter image description here

按钮布局(取消,注册)固定在底部布局指南中。最重要的是3个大小相同UIView s,每个mapView之间的垂直间距为1px。

剩余空间由UIView占用,即class RegisterAddressViewController: BaseViewController, CLLocationManagerDelegate, GMSMapViewDelegate { @IBOutlet var mapView : UIView! override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) self.setupMapView() self.setupLocationManager() } func setupMapView(){ let camera = GMSCameraPosition.cameraWithLatitude(-33.86, longitude: 151.20, zoom: 6) self.gmsMapView = GMSMapView.mapWithFrame(self.mapView.bounds, camera: camera) self.gmsMapView!.delegate = self self.mapView.addSubview(self.gmsMapView!) } //... } 。它固定在顶部,前导和尾随布局指南上。它在建筑物编号视图之间也有8px的间距。

当我在iPhone 6上运行应用程序时,我明白了:

enter image description here

未在所有可用空间中绘制地图。我不知道为什么:

设置地图时,我确实传递了mapView:

的边界
<ListView>

我不相信它是一个AutoLayout问题,因为控制台中没有出现警告,而mapView的浅灰色背景表明布局设置正确。

我是否缺少一些配置?感谢。

1 个答案:

答案 0 :(得分:1)

问题是自动布局[Obsolete("Call Foo2() instead of the deprecated Foo()", true)] public void Foo<T>(IQueryable<T> input) { Foo2(input); } public void Foo2(IQueryable input) { ... } 时没有运行并调整视图大小。将代码移到viewWillAppear的覆盖中,它应该可以正常工作。但请注意,因为viewDidLayoutSubviews可以多次运行,所以检查一下,只检查一次,或确保可以多次运行viewDidLayoutSubviews