如何指定UISpringTimingParameters的初始速度?

时间:2017-09-01 00:57:24

标签: ios uiviewanimation uiviewpropertyanimator

我正在尝试在用户的平移手势释放的视图上执行弹簧动画,并且可能具有非零速度。我基本上试图重新创建使用UISpringTimingParameters(dampingRatio:initialVelocity:)的{​​{3}}动画。然而,this WWDC video似乎自相矛盾:

  

速度

     

动画的初始速度和方向,指定为单位矢量。

     

[...]

     

例如,如果总动画距离为200点且视图的初始速度为每秒100点,请指定幅度为0.5的矢量。

如果0.5是一个示例值,那么显然它毕竟不需要是单位向量。并且首先不可能在单位矢量中编码速度。

无法依赖文档,我尝试插入几个不同的值,但没有任何结果可以产生令人满意的结果。

如何使用此API?

1 个答案:

答案 0 :(得分:0)

好问题。

TL; DR:如果您尝试将某些内容设置为2D中的某个位置,则需要分别为每个坐标设置动画,每个坐标都具有相应的x / y速度。

如果你通过将速度的标量投影放到你的偏移上来组合它们,你会得到一个奇怪的神器,假设在屏幕周围轻弹一个视图的上下文,目标是屏幕的中心,你正在轻弹右侧的视图,因为动画要返回到中心,并且由于组合的速度远离中心,动画只能假设主体在远离中心的直线上移动,它将会在动画回到中心之前向右移动。

https://github.com/chrisco314/SpringAnimationTest