SwiftUI Tutorials: 6日目

前回から少し日が空いてしまったが、今夜は「Animating Views and Transitions」。ビューにアニメーションを追加する。

  • someView.animation(someAnimation) でアニメーションを追加
    • Buttonタップ時のアクションなど withAnimation(someAnimation) {/* animation process */} を実行することで、body 全体をアニメーションを伴って再描画する
      • Text.color, Button.accentColor といった色はアニメーション適用外のようだった (アニメーションしなかった)
  • someView.transition(someTransition) で、ビューの追加、削除に伴うアニメーションを追加
    • 何も指定がなければ fade in / fade out
    • someTransition には slide, move, scale などが指定できる
    • AnyTransition.asymmetric(insertion:removal:) で、表示時、非表示時のアニメーションをそれぞれ指定できる
    • transition1.combined(with: transition2) で複数のトランジションを組み合わせることができる

他にも、SwiftUIには角丸をあらわす Cupsul という表示単位があることを知った。言わずもがな、最もよく使う図形、今となっては矩形よりもはるかに使うと言っても過言ではないので、地味ながら大変ありがたい。(特に画像リソースを使わずにcontinuous curvetureを持つrounded rectを描画しようと思ったら、UIBezierPathで作った角丸でUIViewをマスクする、といった必要があったので。)

例に漏れず、今回のチュートリアルにも誤りが。些末なことだが。

  • Compose Animations for Complex Effects
    • さいごの Cupsule().fill(…).frame(…).offset(…).animation(…) ) < なぜか最後の丸括弧がひとつ多い

コメントを残す