5

我正在尝试在用户的平移手势释放的视图上执行弹簧动画,并且可能具有非零速度。我基本上是在尝试重新创建他们使用的这个 WWDC 视频UISpringTimingParameters(dampingRatio:initialVelocity:)的动画。但是,文档似乎自相矛盾:

速度

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

[...]

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

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

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

我如何使用这个 API?

4

1 回答 1

0

好问题。

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

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

https://github.com/chrisco314/SpringAnimationTest

于 2018-02-02T23:12:27.097 回答