0

次のアニメーションを検討してください。

CABasicAnimation *pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
pathAnimation.duration = 1.0;
pathAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
pathAnimation.toValue = [NSNumber numberWithFloat:1.0f];
pathAnimation.removedOnCompletion = NO;
pathAnimation.delegate = self;

これにより、レイヤーの描画が端から端までアニメーション化されます。問題は、アニメーションが完了すると、strokeEndプロパティが 0 (最初に設定された場所) にリセットされることです。最終値を「固定」するにはどうすればよいですか?

animationDidStop デリゲート メソッドでこれを変更しようとしました。strokeEndこれはほとんどの場合機能しますが、アニメーションを無効にするために CATransaction 内に配置されている場合でも、0のフラッシュが短時間発生する可能性があります。また、プロパティadditivecumulativeプロパティを無駄に使用しました。助言がありますか?

4

1 に答える 1