0

わかりました、もう一度言います:

塗りつぶされているがストロークされていない CAShapeLayer のパス値をアニメーション化していますが、よりスムーズにアニメーション化したいと考えています。基本的なアニメーション コードは次のとおりです。

CABasicAnimation * pathAnimation = [CABasicAnimation animationWithKeyPath:@"path"];
        pathAnimation.toValue = (id)targetPath.CGPath;
        pathAnimation.fromValue = (id)shapePath.CGPath;
        //pathAnimation.fromValue = (id)((CAShapeLayer*)[currentShapeLayers objectForKey:key]).path;
        pathAnimation.repeatCount = 0;
        pathAnimation.duration = animationTime;
        pathAnimation.autoreverses = NO;
        [[currentShapeLayers objectForKey:key] addAnimation:pathAnimation forKey:@"animatePath"];

ええ、それは問題なく動作します。しかし、道は奇妙な形をしており、動的に形成されています。ポイントの数がパス間で常に同じであることを確認しようとしましたが、そのような助けになります。しかし、アニメーション化したくないパスの一部がまだアニメーション化されています。本当に私がやりたいのは、パスの残りの部分が一方の側から伸びたり、縮小したり、場合によってはメインパスから別のサブパスに分かれたりする間、パスの一部を静的に保つことです。

中間パスのステージを見つけてそこまでアニメートして、そこからアニメを完成させることも考えましたが、別の解決策があるのではないかと感じています。

4

1 に答える 1

0

これに対する解決策を見つけました。多くの再描画が必要なため、これが最も効率的なソリューションかどうかはわかりませんが、アニメーションの動作をさまざまに制御できます。

于 2013-08-01T19:16:36.060 に答える