gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 13:54:23 24 4
gpt4 key购买 nike

这是我的方法:

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 上,缩放动画完成后并未以我的目的地点为中心(纬度/经度作为参数传递)。

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

我该如何处理?

最佳答案

尝试在相机位置方法上使用长格式初始化器和更现代的方法来设置 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()

}

}

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

关于ios - Google Map iOS - 缩放动画在两部不同手机上的工作方式不同(iPhone X 与 iPhone 7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54078452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com