Form in SwiftUI: was es ist, Formularerstellung und -konfiguration

Autor: IT Sectr Veröffentlicht: 2026-06-25 Lesezeit: 8 Min.

Form in SwiftUI ist eine Container-Komponente zum Erstellen strukturierter Einstellungs- und Dateneingabeoberflächen, die dem Design von Settings in iOS folgt. Die Komponente gruppiert Steuerelemente automatisch in Abschnitte mit Systemabständen und -stilen und befreit den Entwickler von der manuellen Anpassung von Trennlinien und Farben. Laut Apple Developer Documentation (2025) passt Form sein Erscheinungsbild an jede Plattform an — von gruppierten Tabellen unter iOS bis zu Standardlisten unter macOS — unter Beibehaltung einer einheitlichen API.

Wichtige Punkte

  • Form — ein Container für Settings-ähnliche Oberflächen in SwiftUI mit automatischer Elementgruppierung
  • Section innerhalb von Form erstellt logische Blöcke mit Überschriften und Fußzeilen
  • Picker, Toggle, TextField erhalten automatisch einen plattformgerechten Stil
  • Abstände und Trennlinien werden vom System verwaltet und erfordern keine manuelle Konfiguration
  • NavigationLink ermöglicht hierarchische Formulare mit Navigation zu Unterseiten

Was ist Form in SwiftUI?

Form ist ein spezialisierter SwiftUI-Container, der für die Erstellung von Eingabeformularen und Einstellungsbildschirmen entwickelt wurde. Es erbt das Verhalten von List, fügt aber plattformspezifische Stile hinzu: Unter iOS wird Form als gruppierte Tabelle mit abgerundeten Ecken der Abschnitte angezeigt; unter macOS erscheint es als Standard-Systemliste mit Kontrollkästchen und Steuerelementen.

Im Gegensatz zum manuellen Layout mit VStack und HStack arrangiert Form automatisch Abstände zwischen Elementen, fügt Trennlinien hinzu und passt sein Erscheinungsbild an das Systemthema an — hell oder dunkel. Der Entwickler beschreibt nur die logische Struktur: Section zum Gruppieren und Steuerelemente darin. Das Formular selbst entscheidet, wie Picker, Toggle oder Stepper auf einer bestimmten Plattform visuell angeordnet werden.

Form unterstützt alle standardmäßigen SwiftUI-Eingabeelemente: TextField für Text, SecureField für Passwörter, Picker für Listenauswahl, Toggle für Ein/Aus, Slider für Bereiche, Stepper für schrittweise Werte und DatePicker für Daten. Jedes Element erhält automatisch einen Stil, der den HIG (Human Interface Guidelines) von Apple auf der Zielplattform entspricht.

Form vs List: Container-Vergleich

Trotz ihrer optischen Ähnlichkeit lösen Form und List unterschiedliche Aufgaben. List ist ein universeller Container zur Anzeige von scrollbaren Datenlisten mit Wischaktionen und Zeilenbearbeitungsfunktionen. Form ist ein spezialisierter Container für Dateneingabe und Einstellungen, optimiert für Systemsteuerelement-Stile.

List eignet sich zur Anzeige dynamischer Daten: Nachrichten-Feeds, Chats, Produktkataloge. Form ist für statische Bildschirme mit einem vorhersagbaren Satz von Feldern gedacht: Benutzerprofil, App-Einstellungen, Registrierungsformular. Der Hauptunterschied: Form-Elemente können interaktive Steuerelemente sein, während List-Zeilen meist Daten anzeigen und auf Tippen mit Navigation oder Aktion reagieren.

ParameterFormList
ZweckDateneingabe, EinstellungenListenanzeige
AbschnittsstilGrouped (iOS), System (macOS)Plain oder Grouped
SteuerelementePicker, Toggle, Slider, StepperEingeschränkt (Button)
Dynamische DatenEingeschränkt (ForEach innerhalb Section)Vollständige Unterstützung
WischaktionenJa, swipeActionsJa, swipeActions

Laut den Apple Human Interface Guidelines (2025) sollte Form für Einstellungs- und Eingabebildschirme verwendet werden, wenn sich 3 bis 20 Steuerelemente auf einem Bildschirm befinden und eine Unterteilung in Abschnitte die Benutzerfreundlichkeit verbessert.

Abschnitte Section innerhalb von Form

Section ist der grundlegende Baustein von Form, mit dem logisch zusammengehörige Elemente gruppiert werden können. Jede Section kann eine Überschrift, eine Fußzeile und beliebig viele Steuerelemente enthalten. Das System fügt automatisch Abstände zwischen den Abschnitten hinzu und umschließt jeden in einem visuellen Block mit abgerundeten Ecken.

Die Verwendung von Section ist entscheidend für die Lesbarkeit des Formulars: nach Bedeutung gruppierte Elemente sind für den Benutzer leichter zu verarbeiten. Beispielsweise können auf einem Profileinstellungsbildschirm «Persönliche Daten», «Benachrichtigungen» und «Sicherheit» in einzelne Abschnitte unterteilt werden. Jeder Abschnitt kann eine Fußzeile mit erklärendem Text enthalten, den das System in einer kleineren Schriftart unterhalb der Elementgruppe anzeigt.

swift
Form {
    Section(header: Text("Profil")) {
        TextField("Name", text: $name)
        TextField("Email", text: $email)
    }

    Section(header: Text("Benachrichtigungen"),
            footer: Text("Während Besprechungen deaktivieren")) {
        Toggle("Push notifications", isOn: $pushEnabled)
        Toggle("Email notifications", isOn: $emailEnabled)
    }
}

Im Beispiel enthält der erste Abschnitt «Profile» zwei Textfelder ohne Fußzeile, der zweite Abschnitt «Notifications» zwei Schalter mit einer Erklärung unterhalb der Gruppe. Die Fußzeile fügt automatisch Abstand hinzu und verwendet den Schriftstil caption. Ein Section kann eine Fußzeile ohne Überschrift oder eine Überschrift ohne Fußzeile haben.

Steuerelemente in Form

Form unterstützt alle standardmäßigen SwiftUI-Eingabeelemente. Picker wird in Form automatisch als Navigationszeile mit Übergang zu einem separaten Auswahlbildschirm unter iOS angezeigt. Toggle erscheint als Zeile mit einem rechtsbündigen Schalter. TextField erhält den Systemeingabestil mit einem Platzhalter.

Für numerische Werte werden Stepper (schrittweise Änderung) und Slider (stufenlose Änderung in einem Bereich) verwendet. DatePicker unterstützt mehrere Modi: date, time, dateAndTime. ColorPicker ist für die Farbauswahl verfügbar. Jedes Element passt sich ohne zusätzlichen Code an die Plattform an — unter iOS verwenden die Steuerelemente native UIKit-Stile, unter macOS AppKit.

ElementZweckStil in Form
TextFieldTexteingabeZeile mit Platzhalter
SecureFieldPassworteingabeZeile mit versteckten Zeichen
PickerListenauswahlNavigationLink zum Auswahlbildschirm
ToggleEin/AusZeile mit Schalter
SliderWertebereichHorizontaler Schieberegler
DatePickerDatum/Zeit-AuswahlKompakt- oder Radstil

Für benutzerdefinierte Steuerelemente innerhalb von Form kann jede SwiftUI View verwendet werden — sie erben das Standardverhalten des Abschnitts. Es wird jedoch empfohlen, bei Systemelementen zu bleiben, da sie HIG-Konformität garantieren und Barrierefreiheit (VoiceOver, Dynamic Type) ohne zusätzliche Konfiguration unterstützen.

Form-Codebeispiele

Erstellen wir einen Registrierungsbildschirm mit Form. Das Formular enthält vier Abschnitte: persönliche Daten, Rollenauswahl, Abonnement-Einstellungen und einen Senden-Button. Zur Gruppierung werden Section und standardmäßige SwiftUI-Steuerelemente verwendet.

swift
struct RegistrationForm: View {
    @State private var name = ""
    @State private var email = ""
    @State private var role = "Developer"
    @State private var agreedToTerms = false

    let roles = ["Developer", "Designer", "Manager"]

    var body: some View {
        NavigationStack {
            Form {
                Section(header: Text("Persönliche Daten")) {
                    TextField("Name", text: $name)
                    TextField("Email", text: $email)
                        .keyboardType(.emailAddress)
                }

                Section(header: Text("Rolle")) {
                    Picker("Select role", selection: $role) {
                        ForEach(roles, id: \.self) { role in
                            Text(role).tag(role)
                        }
                    }
                }

                Section {
                    Toggle("Agree to terms", isOn: $agreedToTerms)
                }

                Section {
                    Button("Registrieren") {
                        submitForm()
                    }
                    .disabled(!agreedToTerms)
                }
            }
            .navigationTitle("Registration")
        }
    }

    private func submitForm() { }
}

Das Formular ist in vier Section unterteilt: persönliche Daten mit zwei Textfeldern, Rollenauswahl über Picker, Zustimmung zu den Bedingungen über Toggle und ein Registrierungs-Button. Der Button ist deaktiviert, bis der Benutzer den Bedingungen zustimmt — ein Beispiel für Validierung innerhalb von Form. NavigationStack fügt einen Titel hinzu und ermöglicht Picker, unter iOS einen separaten Auswahlbildschirm zu öffnen.

Einstellungsformular mit Unterabschnitten

swift
struct SettingsForm: View {
    @State private var volume: Double = 0.5
    @State private var isDarkMode = false
    @State private var reminderDate = Date()

    var body: some View {
        NavigationStack {
            Form {
                Section(header: Text("Erscheinungsbild")) {
                    Toggle("Dark mode", isOn: $isDarkMode)
                    Slider(value: $volume, in: 0...1) {
                        Text("Lautstärke")
                    }
                }

                Section(header: Text("Erinnerungen"),
                        footer: Text("Sie erhalten eine Benachrichtigung zur ausgewählten Zeit")) {
                    DatePicker("Remind at",
                        selection: $reminderDate,
                        displayedComponents: .hourAndMinute)
                }

                Section {
                    NavigationLink("Advanced Settings",
                        destination: AdvancedSettingsView())
                }
            }
            .navigationTitle("Settings")
        }
    }
}

Dieses Beispiel zeigt eine Kombination von Slider, DatePicker und NavigationLink innerhalb von Form. DatePicker verwendet den Modus hourAndMinute, um nur die Uhrzeit anzuzeigen. NavigationLink im letzten Abschnitt erstellt einen Übergang zu einem Bildschirm für erweiterte Einstellungen — ein häufiges Muster für Settings-ähnliche Oberflächen. Die Überschriften und Fußzeilen der Abschnitte machen das Formular selbsterklärend: Der Benutzer versteht sofort, zu welcher Gruppe jedes Steuerelement gehört.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Form und List in SwiftUI?

Form ist für Dateneingabe und Einstellungen optimiert: Steuerelemente erhalten Systemstile, Abschnitte erhalten abgerundete Ecken und Abstände. List ist ein universeller Container zur Datenanzeige. Form eignet sich für Einstellungsbildschirme, List für Chats, Feeds, Kataloge.

Kann Picker innerhalb von Form verwendet werden?

Ja, Picker wird innerhalb von Form automatisch als Zeile mit dem ausgewählten Wert und einem NavigationLink zur Listenauswahl unter iOS angezeigt. Unter macOS erscheint Picker je nach Stil als Dropdown-Liste oder Optionsfeldgruppe. Die Anpassung erfolgt ohne zusätzlichen Code.

Wie fügt man eine benutzerdefinierte View zu Form hinzu?

Jede SwiftUI View kann innerhalb von Form oder Section platziert werden. Für benutzerdefinierte Steuerelemente wird empfohlen, die Standardabstände des Abschnitts zu übernehmen und Dynamic Type über Systemschriftarten zu unterstützen. Vermeiden Sie feste Größen und Farben, damit das Formular auf allen Geräten korrekt angezeigt wird.

Unterstützt Form Scrollen?

Ja, Form wird automatisch in einen ScrollView eingewickelt, wenn der Inhalt die Bildschirmhöhe überschreitet. ScrollView muss nicht manuell hinzugefügt werden — das System bestimmt selbst, ob Scrollen erforderlich ist. Für Formulare, die nicht scrollen sollen, verwenden Sie VStack mit einer festen Höhe.

Wie ändert man den Stil von Form unter iOS?

Form unterstützt unter iOS zwei Stile über den Modifikator .formStyle(.grouped) — die standardmäßige gruppierte Ansicht mit abgerundeten Abschnitten. Unter macOS ist .formStyle(.columns) mit mehrspaltigem Layout verfügbar. Der Stil wird auf das gesamte Formular auf einmal angewendet und ändert die visuelle Darstellung aller inneren Elemente.

Zusammenfassung

  • Form — SwiftUI-Container für Settings-ähnliche Oberflächen mit automatischer Gruppierung durch Section
  • Section bietet logische Trennung von Elementen mit Überschriften und Fußzeilen
  • Picker, Toggle, TextField passen sich automatisch ohne manuelle Konfiguration an den Plattformstil an
  • Abstände und Trennlinien werden vom System verwaltet und entsprechen den Apple HIG auf jeder Plattform
  • NavigationLink innerhalb von Form erstellt hierarchische Navigation — Standard für Einstellungsbildschirme
  • Form unterstützt alle SwiftUI-Eingabeelemente: Slider, Stepper, DatePicker, ColorPicker
  • Verwenden Sie Form für Einstellungs- und Eingabebildschirme, List für die Anzeige dynamischer Datenlisten

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch