2017-02-21 10 views
2

私はこのようなCAShapeLayerpathプロパティの変更アニメーション化しようとしています:アニメーションCAShapeLayerパスの変更

​​

を、これはanimatePathChange機能コードです:

func animatePathChange(for layer: CAShapeLayer, toPath: CGPath) { 
    let animation = CABasicAnimation(keyPath: "path") 
    animation.duration = 1.0 
    animation.fromValue = layer.path 
    animation.toValue = toPath 
    animation.timingFunction = CAMediaTimingFunction(name: "easeInEaseOut") 
    layer.add(animation, forKey: "path") 
} 

しかし、最終結果は何ではありませんが欲しいです。どのように層のpathを古い値から新しいものに変更するアニメーションを実現できますか?パスをアニメーション化しないでください

Result

+0

あなたの代わりにパスを変更する層の 'strokeEnd'をアニメーション化することはできますか? – dan

+0

これは、パス図面を最初からアニメーション表示します。パスに沿った古いパスと新しいパスの違いだけをアニメーション化したい。 –

答えて

7

これは、上記のコードで、今どのように見えるかです。全体のパスを設定してからを設定します。これは0と言いましょう。ユーザーには何も表示されません。現在、変更を加えるたびに、現在のstrokeEndから新しいstrokeEndに変更をアニメートします。パスは曲線のさらに一周するように見えます。

enter image description here

+0

なぜこれについて考えなかったのですか...ありがとうございました! –

関連する問題