CAShapeLayerパスをCASpringAnimationでアニメーション化することを試しています。予想される結果は、「弾力のある」動作をする形状間の「モーフィング」です。CAShapeLayerパスのスプリングアニメーションが「オーバーシュート」しない
私は以下のように円と方形のパスの間に基本的なコード例を持っていますが、最終的な結果は期待される動作である最終的なより大きな方形のパスを過ぎて「オーバーシュート」しないスプリングアニメーションです。
私のコードは次のとおりです。
let springAnimation = CASpringAnimation(keyPath: "path")
springAnimation.damping = 1
springAnimation.duration = springAnimation.settlingDuration
springAnimation.fromValue = standardCirclePath().cgPath
springAnimation.toValue = standardSquarePath().cgPath
circleLayer.add(springAnimation, forKey: nil) // Where circleLayer (red background) is a sublayer of a basic UIView in the frame (blue background)
私はfrom this answer私のパスを得ました。
CAShapeLayerパス変換でこれを達成するためのCASpringAnimationの方法はありますか?そうでなければ、代替案は何ですか?
私が知る限り、パスのアニメーションのオーバーシュートやアンダーシュートには、 'CASpringAnimation'を使うことはできません。これは重要な問題ではなく、Core Animationは自動パス補間のための洗練されたサポートを持っていないようです。これを解決するには、アニメーションのオーバーシュートとアンダーシュートの停止のためにいくつかのパスキーフレームを追加する必要があります。 – LucasTizma