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、とにかくこれを行う方法が見つかりません。

2 番目に考えたのは、複数のアニメーションを次々に実行し、各アニメーションの持続時間を前のアニメーションよりもわずかに長くすることでした。しかし、これを行うためのよりエレガントな方法があることを願っています。

4

1 に答える 1

4

アニメーションに独自の設定timingFunctionを行うことで、アニメーションの全時間プロファイルを詳細に指定できます。CAMediaTimingFunctionクラスをチェックしてください。

于 2013-10-03T11:48:58.233 に答える