Skip to main content

Animiertes Erfolgsbanner

Beschreibung

Diese View zeigt beim Auslösen einer Aktion ein Banner am oberen Bildschirmrand an, das den erfolgreichen Abschluss signalisiert. Das Banner blendet mit einer Animation ein und verschwindet nach einer kurzen Verzögerung automatisch wieder.

🔍 Zweck

  • Visuelles Feedback bei abgeschlossenen Aufgaben
  • Anzeige von Statusmeldungen oder Erfolgsbenachrichtigungen
  • Unterstützung der Nutzerführung durch temporäre Hinweise
  • Ersatz für Toast- oder Snackbar-Elemente
  • Demonstration von SwiftUI Animationen mit Transition

🖥️ Betriebssystem

iOS

📄 Codebeispiel

import SwiftUI

@main
struct AnimatedBannerApp: App {
    var body: some Scene {
        WindowGroup {
            BannerExample()
        }
    }
}

struct BannerExample: View {
    // Track if the banner is visible
    @State private var showBanner = false

    var body: some View {
        VStack {
            if showBanner {
                // Success banner with transition
                Text("✅ Task completed")
                    .padding()
                    .background(Color.green.opacity(0.8))
                    .cornerRadius(10)
                    .transition(.move(edge: .top).combined(with: .opacity))
            }

            Spacer()

            // Button triggers the success banner
            Button("Complete Task") {
                withAnimation {
                    showBanner = true
                }
                // Auto-dismiss the banner after delay
                Task {
                    try? await Task.sleep(nanoseconds: 2_000_000_000)
                    withAnimation {
                        showBanner = false
                    }
                }
            }
            .buttonStyle(.borderedProminent)
        }
        .padding()
    }
}

// Modern Swift 5.10+ preview syntax
#Preview {
    BannerExample()
}