Google 地图 iOS - 缩放动画在两部不同手机上的工作方式不同(iPhone X vs iPhone 7)

Google Map iOS - Zoom animation does not work the same way on two different phones (iPhone X vs iPhone 7)

这是我的方法:

private func animateCamera(lat: Double, long: Double, zoom: Float) {

    DispatchQueue.main.async {
         CATransaction.begin()
         CATransaction.setValue(1, forKey: kCATransactionAnimationDuration)
         let camera = GMSCameraPosition.camera(withLatitude: lat, longitude: long, zoom: zoom)
         self.mapView.animate(to: camera)
         CATransaction.commit()
    }
}

我是这样称呼它的:

animateCamera(lat: obs.position.latitude, long: obs.position.longitude, zoom: 7)

缩放动画正在 iPhone X 上工作。

另一方面,在 iPhone 7 上,缩放动画完成后并未以我的目标点为中心(lat/lon 作为参数传递)。

是不是因为屏幕分辨率不同?

我该如何处理?

尝试在相机位置方法上使用长格式初始化器和更现代的方法来设置 CATransaction:

的持续时间
private func animateCamera(lat: Double, long: Double, zoom: Float) {

    DispatchQueue.main.async {

        CATransaction.begin()
        CATransaction.setAnimationDuration(1)
        CATransaction.setAnimationTimingFunction(CAMediaTimingFunction(controlPoints: 0.25, 0.75, 0.25, 1)) // you can add a timing curve too btw
        self.mapView.animate(to: GMSCameraPosition.camera(withLatitude: lat, longitude: long, zoom: zoom, bearing: self.mapView.camera.bearing, viewingAngle: self.mapView.camera.viewingAngle))
        CATransaction.commit()

    }

}

这在我的所有模拟器中产生了相同的结果。