ios - 谷歌地图不适合 subview

标签 ios swift swift3 google-maps-sdk-ios

我正在使用 Google map ,但它在 subView 中的设置不正确。 我正在使用 swift 3。

@IBOutlet weak var mapSubView: UIView!
 var mapView:GMSMapView!
var placesClient: GMSPlacesClient!

我在viewDidLoad中使用了以下代码:

let camera = GMSCameraPosition.camera(withLatitude: 28.616536, longitude: 77.379552, zoom: 12.0)
mapView = GMSMapView.map(withFrame: mapSubView.bounds, camera: camera)
mapSubView.addSubview(mapView)
mapView.delegate = self
self.drawPath()
placesClient = GMSPlacesClient.shared()

我的模拟器截图:

您在谷歌地图附近的右侧看到了空白

还有我 Storyboard的截图:

enter image description here

最佳答案

viewDidLoad 中,您的 View 未完全呈现,因此该行

mapView = GMSMapView.map(withFrame: mapSubView.bounds, camera: camera)

将根据特定时间的边界设置 mapView 的大小。有几个解决方法。一种是稍后呈现您的 mapView,例如在 viewWillAppear 中。另一种是在 Storyboard 中创建一个 UIView,设置它的约束,使其类成为 GMSMapView 并连接一个 @IBOutlet。此外,您可以使用 autoresizingMask

修复它

关于ios - 谷歌地图不适合 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47323989/

相关文章:

ios - 检测 UICollectionViewCell 是否正在显示

node.js - nodejs api和swift app之间的连接

ios - SwiftUI - 在导航堆栈中弹回不会释放 View

ios - 具有 NULL 值的 NSDateFormatter 部分结果

ios - 以编程方式检测从哪个应用商店下载了该应用

ios - URLSessionTask 是如何运行的

ios - 界面测试失败 : Multiple Matches Found Error

ios - 如何在 Collection View 的底部/页脚中添加 uiactivity 指示器?

ios - 如何以针对不同尺寸显示器的模式排列多个 UIView

ios - 将 Obj-C 函数完成处理程序代码转换为 Swift 2.0 时出错