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()
}
}
这会在我的所有模拟器中产生相同的结果。仍然相同。我希望你是对的。。。我不知道是什么造成了这种行为。发布整个视图控制器