Die @State-Eigenschaft
Teil des Abschnitts Einführung in SwiftUI der Swift-Journey von Coddy. Lektion 20 von 50.
Der Inhalt einer Ansicht wird aus ihren Daten neu berechnet. Damit sich Daten ändern können, markiere eine Eigenschaft mit @State. Wenn sich eine Zustands-Eigenschaft ändert, führt SwiftUI den Inhalt erneut aus und aktualisiert den Bildschirm:
struct ContentView: View {
@State private var count = 0
var body: some View {
VStack {
Text("Count: \(count)")
Button("Add one") {
count += 1
}
}
}
}Jeder Tipp führt count += 1 aus, und der Text zeigt die neue Zahl an. Du aktualisierst den Text nie selbst: Der Text wird anhand von count beschrieben und folgt daher dem Wert.
Eine einfache var in einer Ansicht kann nicht aus ihrem Body heraus geändert werden, weil Ansichten Structs sind. @State speichert den Wert außerhalb des Structs, sodass er jeden Neuzeichnungsvorgang überdauert. Markiere den Zustand als private: Er gehört zu dieser Ansicht.
Aufgabe
EinfachVervollständige den Tippzähler. Die Aktion der Schaltfläche ist leer: Lass jeden Tipp 1 zu taps addieren, sodass der Text nach einem Tipp Taps: 1 und nach zwei Tipps Taps: 2 lautet.
Probier es selbst
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Einführung in SwiftUI
4Modifikatoren
InnenabstandHintergründeReihenfolge der ModifikatorenRahmen und FormenRückblick – Badge Maker10Projekt – Coddy Coffee
ProjektübersichtGetränkeansichten5Status und Buttons
ButtonsDie @State-EigenschaftWahr-oder-falsch-StatusBedingte AnsichtenZusammenfassung – Punktestand verwaltenÜbe selbstständig: Swift-Playground