允许捏合缩放,同时使用iOS Google Maps SDK进行动画制作

时间:2015-03-11 21:05:00

标签: ios google-maps google-maps-sdk-ios

我正在使用Google Maps SDK for iOS中的animateToBearing方法,以便我可以使用设备指南针旋转地图: https://developers.google.com/maps/documentation/ios/views#bearing_orientation

在继续调用此方法的同时,地图对常规缩放到缩放功能无响应。有什么方法可以让地图继续允许捏缩放,同时还可以动画到轴承?

我是这样实现的:

func locationManager(manager: CLLocationManager!, didUpdateHeading newHeading: CLHeading!) {
        mapView.animateToBearing(newHeading.magneticHeading)
}

2 个答案:

答案 0 :(得分:1)

在您要求位置管理员更新标题之前,请确保您对其进行过滤,以便在每次微小的移动时都不会更新。如果您这样做,Google地图几乎会一直在制作动画,并且在动画地图时不会对您的动作做出响应。

在Objective-C中,这是代码:

self.locationManager.headingFilter = 5;

你可以自己试验一下,但是我觉得把它改成大约1到5度会让它在保持手势的同时反应灵敏。

答案 1 :(得分:0)

所以我很抱歉以前误解了这个问题。我以为你也在使用animateToZoom。

<强>答案: 所以不完全确定它是否可能,因为它有点设计。移动相机时,例如对于地图上的不同点,逻辑上有一个手势停止该行为是有意义的,反之亦然:例如,如果我用手指握住相机的位置,触发显式动画仍应移动它。

但是,如果您在更改值时停用动画,可能会有更好的时间,但我不认为它会帮助太多,因为&#39;设置& #39;也会停止一个手势。但动画更积极地试图在其生命周期内阻止它(例如,超过250毫秒或默认值) 以下是实施。

希望这清楚而有帮助。

&#13;
&#13;
CATransaction.begin()     
CATransaction.setDisableActions(true)
        map.animateToBearing(value)
        CATransaction.commit()
&#13;
&#13;
&#13;