首页 > 解决方案 > 在 IOS 13 中,当 ViewController 未推送时,Google Map 相机位置未显示准确。附上两个屏幕截图

问题描述

我正在开发出租车应用程序,我想在其中展示并显示三个标记,但相机位置始终位于左上角,我必须滚动地图视图才能看到标记。已经尝试过这些东西。

附加示例代码只是为了显示一个标记,当视图控制器被推送到导航堆栈时,它可以正常工作。

 func testCode() {
    mapView.layoutIfNeeded()
   DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {

   let camera = GMSCameraPosition(latitude: 31.326137, longitude: 75.575520, zoom: 10)
        self.pickupMarker = GMSMarker()
        self.addMarkerOnMap(lat: "31.326137", long: "75.575520", img: #imageLiteral(resourceName: "drop-icon"), mapVieww: self.mapView,marker: &(self.pickupMarker), title: "Drop at", snippet:"Hello")
    CATransaction.begin()
    CATransaction.setValue(Int(1), forKey: kCATransactionAnimationDuration)
    self.mapView.animate(to: camera)
CATransaction.commit()
               })
}

推送时准确定位

出现时不准确的相机位置

标签: iosswiftgoogle-mapsgoogle-maps-markersios13

解决方案


我做了四件事来解决这个问题。

  1. 首先在我想要我的地图视图的地方拿一个容器,在故事板中,然后在课堂上制作一个插座。
  2. 删除 mapview 出口并从情节提要中删除 mapview UIVIew。
  3. 以编程方式将 GMSMapView 添加为容器中的子视图(我想在其中显示地图)。
  4. 在 Dispatchqueue 的 viewdidappear 方法中添加代码,现在一切正常。

推荐阅读