2

有没有办法在CABasicAnimation动画时改变重复的值?

所以我有以下抖动动画:

CABasicAnimation * shake=[CABasicAnimation animationWithKeyPath:@"position"];
[shake setDuration:0.05];
[shake setRepeatCount:130];
[shake setAutoreverses:YES];
[shake setFromValue:[NSValue valueWithCGPoint:CGPointMake([clock center].x-12.0f, [clock center].y)]];
[shake setToValue:[NSValue valueWithCGPoint:CGPointMake([clock center].x+12.0f, [clock center].y)]];
[shake setDelegate:self];
[[clock layer] addAnimation:shake forKey:@"position"];

我希望晃动在动画结束时减慢。我想如果我可以调整duration动画重复的时间就可以做到这一点,但我无论如何都找不到这样做。

我的第二个想法是制作几个动画,一个接一个地运行,每个动画的持续时间都比前一个稍长。但我希望有一种更优雅的方式来做到这一点。

4

1 回答 1

4

您可以在动画上设置自己的设置timingFunction,这样您就可以详细指定动画的完整时间配置文件。查看CAMediaTimingFunction课程。

于 2013-10-03T11:48:58.233 回答