IOS 全新的上层帧动画KeyFrame

有了这些全新的API,在我们日常的开发中就基本上用不到CA动画了,可谓是开发者的一大福音。

[UIView animateKeyframesWithDuration:duration delay:delay options:options animations:^{ 
[UIView addKeyframeWithRelativeStartTime:0.0 relativeDuration:0.5 animations:^{ 
//第一帧要执行的动画 
}]; 
[UIView addKeyframeWithRelativeStartTime:0.5 relativeDuration:0.5 animations:^{ 
//第二帧要执行的动画 
}]; 
} completion:^(BOOL finished) {
 //动画结束后执行的代码块 
 }];


 新引入的animateKeyframesWithDuration与CAKeyframeAnimation的关系,可以比对animateWithDuration和CABasicAnimation,我们只需要将每一帧动画加入到block方法中,并传入此段动画在全过程中的相对开始时间和执行时间(duration具体是指此段动画的执行时间占全过程的百分比)。同时,你可以在一次动画中使用多个关键帧,只需使用addKeyframe依次将所有关键帧加入动画执行栈中。

除此之外,值得一提的是多了一个阻尼动画的API,以前为了做阻尼效果写一大段代码已经成为历史,现在只需要简单的一句

[UIView animateWithDuration:duration delay:delay usingSpringWithDamping:damping initialSpringVelocity:velocity options:options animations:^{ 
//这里书写动画相关代码 
} completion:^(BOOL finished) { 
//动画结束后执行的代码块 
}];

damping参数代表弹性阻尼,随着阻尼值越来越接近0.0,动画的弹性效果会越来越明显,而如果设置阻尼值为1.0,则视图动画不会有弹性效果velocity参数代表弹性修正速度,它表示视图在弹跳时恢复原位的速度。

你可能感兴趣的:(spring,ios,帧动画,keyframe,阻尼)