[SwiftUI]アニメーションを付ける「withAnimation」

SwiftUI
スポンサーリンク

withAnimationとは?

インターフェース, インターネット, プログラム, ブラウザ, Www

withAnimationとは、状態変数(@Stateや@Bindingなど)の変更が影響するビューに、アニメーションを付ける方法です。

func withAnimation <Result> ( _ animation : Animation? , _ body : ( ) throws -> Result) rethrows -> Result

animation:アニメーションの種類
body:ビューに影響する状態変数の変化を定義するクロージャー

animation引数では、Animation構造体でアニメーションの種類を指定します。

そして、bodyでは、状態変数を変化させるクロージャーを定義します。

    @State var showText = false
    
    var body: some View {
        VStack {
            Button(action: {
                
                
                withAnimation(.linear(duration: 1)) {
                    
                    //状態変数の変更
                    showText.toggle()
                    
                }
                
            }) {
                Text("アニメーション")
            }
            
            if showText {
                Text("Hello")
            }
        }
    }

withAnimationで、linearアニメーションを指定し、クロージャー内でビューの表示・非表示を切り替える状態変数を変更しています。

状態変数の変化で影響を受けるTextビューにアニメーションが追加されることとなります。

スポンサーリンク

まとめ

withAnimationは、状態変数の変化とアニメーションを結びつける関数です。

ビューに影響を与える状態変数の変化を、withAnimationのクロージャー内ですることによってアニメーションを追加することが出来ます。

スポンサーリンク

オススメの記事

コメント

タイトルとURLをコピーしました