次のアニメーションを検討してください。
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のフラッシュが短時間発生する可能性があります。また、プロパティadditive
とcumulative
プロパティを無駄に使用しました。助言がありますか?