CatHand Blog

アプリ開発やMac弄り

SwiftUIに足りないイージングアニメーションを追加する

SwiftUIのAnimationには easeIn とかはあるんですが、 easeInCubic とかがありません。

ちょっと検索してみたところ、↓が見つかりました。

github.com

しかしこれは時間に対する値を返す関数群のライブラリなので、SwiftUIの Animation では使用できません。

SwiftUIの Animation でカスタムイージングを実装するには timingCurve(_:_:_:_:duration:) を使います。

https://developer.apple.com/documentation/swiftui/animation/timingcurve(_:_:_:_:duration:)

duration以外の4つのパラメータはCSScubic-bezier と同じっぽいです。なので、↓のサイトを参考にイージングアニメーションを追加してみました。

easings.net

使いやすいように Swift Package Manager に対応したライブラリとして公開しています。

github.com