MKMapView:我如何复制Apple的"查找我的iPhone /朋友"应用程序中看到的"反弹变焦"?

Jor*_*ith 5 iphone mapkit mkmapview ios swift

背景

MKMapView提供了几种方法,可以让您设置可见地图rect(或区域,坐标范围等).这些方法具有动画参数,当设置为true时,使用大约0.3秒的线性动画来为变化设置动画.

虽然这很好,但我想复制Apple 在点击地图时在他的" 查找我的朋友"和" 查找我的iPhone"应用程序中使用的动画.如果你自己尝试一下,你会发现一个非线性曲线的动画要快得多(大约0.15秒).现在,我们称之为"反弹 - 缩放"过渡.

我想要复制非线性动画曲线和自定义动画持续时间.在UIView的animateWithSpring ...方法中包装地图更新似乎不起作用(我当然可能做错了).非常清楚Apple可能有能力做MKMapView API中没有公开的东西,但Apple的App Store分布式应用程序通常似乎坚持他们关于公共API的指导方针.

这可能吗?如果是这样 - 怎么样?仅仅改变动画持续时间并不是我追求的.我也想控制动画曲线.

示例代码

在这里看到一个试图做上述操场的游乐场.请注意,MKMapView似乎考虑了动画持续时间,但不考虑弹性,例如Find my iPhone/Find my Friends.