代码之家  ›  专栏  ›  技术社区  ›  hackerman58888

以不同于其区域的速度更改MKMapView中心坐标。跨度

  •  1
  • hackerman58888  · 技术社区  · 8 年前

    每当选择地图上的注释时,我都会尝试使我的地图视图具有自定义动画。

    此自定义动画需要由地图视图的中心坐标以不同于地图视图跨度的速度变化组成。(我希望地图视图同时快速调整其中心,然后缓慢放大)

    通过一个接一个地执行动画,我在一定程度上实现了这一点:

    MKMapView.animate(withDuration: 0.1, delay: 0.0, options: UIViewAnimationOptions.curveEaseOut, animations: {
            self.homeMapView.centerCoordinate = region.center
        }, completion: {
            (value: Bool) in
            MKMapView.animate(withDuration: 1.5, delay: 0.0, options: UIViewAnimationOptions.curveEaseOut, animations: {
                self.homeMapView.region.span = region.span
            }, completion: {
                (value: Bool) in
                print ("finished animation")
            })
        })
    

    问题是,这看起来并不平滑,我希望两个动画同时开始并同时运行。这可以通过一个CAAnimation和中心坐标值在跨度变化时相加来实现,但不幸的是,我使用的是MKMapView,而不是CALayer。

    任何想法或帮助都将不胜感激!谢谢

    0 回复  |  直到 8 年前