使用自定义函数对值进行插值非常简单。但这是不好的做法?我应该(或另外)使用keyTimes
,timingFunctions
或timingFunction
来解释框架的动画曲线吗?使用自定义动画曲线时,我真的不明白为什么我应该使用这些属性。我想要这样做。为什么在CAKeyframeAnimation上使用`keyTimes`,`timingFunctions`或`timingFunction`?
这工作得很好。正如预期的那样是动画的看法位置与自定义立方渐出动画曲线:
CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position.x"];
anim.duration = 5;
NSUInteger numberOfFrames = anim.duration * 60;
NSMutableArray *values = [NSMutableArray new];
for (int i = 0; i < numberOfFrames; i++)
{
CGFloat linearProgress = (double) i/(double) numberOfFrames;
CGPoint position = view.layer.position;
position.x = 10 + (300 * CubicEaseOut(linearProgress));
[values addObject:[NSValue valueWithCGPoint:position]];
}
anim.values = values;
[view.layer addAnimation:anim forKey:@"position"];
我想如果你不计算所有的中间值,并希望'CAAnimation'类来处理插值,那么它有道理吗? – hfossli