0

フェードイン/アウトアニメーションを使用して、SwiftUI で単純な「タップして UI の表示を切り替える」を実装しようとしています。次のコードは、期待どおりに Text 要素のフェードイン効果をアニメーション化しますが、isVisibleが false になるとすぐに Text 要素を非表示にします。

このコードが機能しない理由と、最も自然な方法で修正する方法を理解したいと思います。

import SwiftUI

struct ContentView: View {
    @State var isVisible = true
    var body: some View {
        ZStack {
            Rectangle()
                .foregroundColor(.blue)
                .gesture(TapGesture(count: 1).onEnded {
                    withAnimation(.easeInOut(duration: 1.0)) {
                        isVisible.toggle()
                    }
                })
            if isVisible {
                Text("Tap me!")
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

私は Big Sur で Xcode 12.5 を使用しており、私の iPhone は iOS 14.5.1 を実行しています。

4

1 に答える 1