首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GMSMapView不占据全部边界。

GMSMapView不占据全部边界。
EN

Stack Overflow用户
提问于 2016-06-26 14:16:33
回答 1查看 201关注 0票数 0

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

按钮布局(取消,注册)被钉在底部布局指南上。最上面是3个大小相等的UIView,它们之间有1px的垂直间距。

剩下的空间由mapView占用,这是一个UIView。它被固定在顶部,引导和尾随布局指南。它在建筑物编号视图之间还有8px间距。

当我在我的iPhone 6上运行应用程序时,我得到如下信息:

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

在设置映射时,我确实传递了mapView的边界:

代码语言:javascript
复制
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!)
    }

    //...
}

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

有什么配置我遗漏了吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-26 15:03:10

问题是,在使用viewWillAppear时,Auto还没有运行和调整视图大小。将您的代码移动到viewDidLayoutSubviews的覆盖中,它应该能正常工作。但是要小心,因为viewDidLayoutSubviews可以多次运行,所以检查一下,并且只执行一次设置,或者确保多次运行setupMapView是可以的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38039388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档