3

私は、それぞれが起源と角度を持つ多くの人々を表示するアプリを持っています。

struct Location {
    var centre:CGPoint
    var facing:Angle
}

SwiftUI は、場所 A から場所 B に移動するときに、多くのアニメーションを魔法のように自動的に実行します。

withAnimation {
    person.location = newLocation
}

ただし、Angle (向く) プロパティについては、アニメーションを最短ルートで実行したいと考えています (現実の世界では角度が折り返されることを念頭に置いてください)。

たとえば、角度が 5 -> 10 (度) に変化すると、Swift UI が正しくアニメーション化されます。

5,6,7,8,9,10

しかし、2 から 358 になると、長い道のりが必要になります。

SwiftUI は 2,3,4,5,6,7.......,357,358 を行います

やりたいところ

2,1,0,359,358

これについてどうすればいいですか?

ありがとうございました

更新:アニメーション システムを操作できるようにするソリューションを期待しています。おそらく、何らかのアニメーション モディファイアを使用して、アニメーション ステップを直接提供する新しい MyAngle 構造体を使用します。.easeInOut は手順を変更します - .goTheRightWay アニメーションを作成できる同等のアプローチはありますか?

4

3 に答える 3