iOS 7春季动画的时间 - 位置图方程(animateWithDuration:delay:usingSpringWithDamping:...)

use*_*004 4 animation equation uiviewanimation uiviewanimation-curve ios7

给定[UIView animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion:]中使用的spring参数:

  1. usingSpringWithDamping
  2. initialSpringVelocity

时间与位置图的数学方程是什么?

(我试图在iOS 7中处理新的弹簧动画API,但是我没有得到好的结果,实验花了太长时间.我的目标是尽可能接近我的动画曲线如果我使用Core Animation而不是UIView的块对象动画,我会指定使用CAMediaTimingFunction.)

Boo*_*ker 7

阻尼比

弹簧动画接近其静止状态时的阻尼比.

要在没有振荡的情况下平滑地减速动画,请使用值1.使用接近零的阻尼比来增加振荡.

当阻尼值接近0.0时,弹簧变得更有弹性.

速度

初始弹簧速度.要平滑开始动画,请将此值与附件之前的视图速度相匹配.

初始弹簧速度的值1.0对应于一秒内经过的总动画距离.例如,如果总动画距离为200点,并且您希望动画的开始与100 pt/s的视图速度匹配,则使用值0.5.

例:

[UIView animateWithDuration:2.0
                      delay:0.0
     usingSpringWithDamping:0.4
      initialSpringVelocity:0.5
                    options:(UIViewAnimationOptions)options
                 animations:^{

                 }
                completion:nil];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Vad*_*gin 1

我相信由此产生的数学方程就是这里描述的: http: //en.wikipedia.org/wiki/Damping

\n\n

阻尼参数对应于阻尼比 \xce\xb6,并且 \xce\xb6 = 1 会产生所谓的临界阻尼弹簧,它会尽快收敛到最终位置而不发生振荡。\n初始速度为零时,它对应于类似缓入缓出曲线,但缓入部分更陡,缓出部分更平滑。

\n\n

对于大于 1 的阻尼比,动画看起来会更加线性。\n对于小于 1 的阻尼比,将出现围绕最终位置的振荡。它的频率可以从动画持续时间和可能的其他参数中得出。

\n\n

这是文档中关于初始速度的说明,应该非常清楚:

\n\n
\n

初始弹簧速度。为了使动画顺利启动,请将此值与附加之前的视图\xe2\x80\x99s 速度相匹配。\n 值 1 对应于一秒内经过的总动画距离。例如,如果总动画距离为 200 点,并且您希望动画的开始匹配 100 点/秒的视图速度,请使用值 0.5。

\n
\n