Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google Map iOS-Zoom动画在两款不同的手机(iPhone X和iPhone 7)上的工作方式不同_Ios_Swift_Google Maps_Zooming - Fatal编程技术网

Google Map iOS-Zoom动画在两款不同的手机(iPhone X和iPhone 7)上的工作方式不同

Google Map iOS-Zoom动画在两款不同的手机(iPhone X和iPhone 7)上的工作方式不同,ios,swift,google-maps,zooming,Ios,Swift,Google Maps,Zooming,以下是我的方法: private func animateCamera(lat: Double, long: Double, zoom: Float) { DispatchQueue.main.async { CATransaction.begin() CATransaction.setValue(1, forKey: kCATransactionAnimationDuration) let camera = GMSCameraPo

以下是我的方法:

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上运行

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

是因为屏幕分辨率不同吗


我应该如何处理这一问题?

尝试在“摄影机位置”方法中使用长格式初始值设定项,并使用更现代的方法来设置
CATTransaction的持续时间:

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()

    }

}

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

仍然相同。我希望你是对的。。。我不知道是什么造成了这种行为。发布整个视图控制器