MKMapView 附带了几种方法,可让您设置可见地图rect(或区域,坐标范围等)。这些方法具有动画参数,当设置为true时,使用大约0.3秒的线性动画来动画更改。
虽然这很好,但我想在点击地图时复制Apple在查找我的朋友和查找我的iPhone 应用中使用的动画。如果你自己尝试一下,你会发现一个非线性曲线的动画要快得多(大约0.15秒)。现在,我们称之为“反弹 - 缩放”过渡。
我想要复制非线性动画曲线和自定义动画持续时间。在UIView的 animateWithSpring ... 方法中包装地图更新似乎不起作用(当然我可能做错了)。非常清楚Apple可能有能力在MKMapView的API中执行不公开的功能,但Apple的App Store分布式应用程序通常似乎坚持他们关于公共API的指导原则。
这可能吗?如果是这样 - 怎么样?仅仅改变动画持续时间并不是我追求的。我也想控制动画曲线。
有关试图执行上述操作的游乐场,请参阅here。请注意,MKMapView似乎考虑了动画持续时间,但不是弹性,比如找我的iPhone /找我的朋友。
答案 0 :(得分:2)
我认为您正在寻找AnimateWithDuration并使用UIViewAnimationOptionCurveEaseInOut选项。我在我创建的应用程序中做了类似的事情但是使用按钮。我不得不将动画链接在一起。使其达到目标尺寸的100%,然后是80%,然后再回到100%