Skip to main content

Expandierende Karte mit Federanimation

Beschreibung

Diese View zeigt eine Karte, die zwischen kompakter und erweiterter Höhe umschaltet. Der Übergang wird mit einer federnden Animation dargestellt, wodurch der Zustandswechsel klar und visuell ansprechend wirkt.

🔍 Zweck

  • Inhalt ein- und ausklappbar darstellen, z. B. Vorschau vs. Details
  • Akkordeonartige UI Muster prototypisieren
  • Interaktive Cards in Dashboards oder Feeds
  • Animationsverhalten mit spring evaluieren
  • Nutzerfokus durch dynamische Größenänderung lenken

🖥️ Betriebssystem

iOS

📄 Codebeispiel

import SwiftUI

@main
struct ExpandingCardApp: App {
    var body: some Scene {
        WindowGroup {
            ExpandingCardExample()
        }
    }
}

public struct ExpandingCardExample: View {
    // Track whether the card is expanded or collapsed
    @State private var isExpanded = false

    public init() {}

    public var body: some View {
        VStack(spacing: 16) {
            // The animated card: height changes based on state
            RoundedRectangle(cornerRadius: 12)
                .fill(Color.blue)
                .frame(height: isExpanded ? 200 : 80)
                // Use spring animation for a natural feel
                .animation(.spring(), value: isExpanded)

            // Toggle button to switch states
            Button(isExpanded ? "Collapse" : "Expand") {
                isExpanded.toggle()
            }
            .buttonStyle(.borderedProminent)
        }
        .padding()
        // Give the view a background to better showcase the card
        .background(Color(.systemBackground))
    }
}

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