Swift - @state vars: Unterschied zwischen den Versionen
Steff (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „'''Hinweis''': @state ist nicht für UIView verfügbar sondern für die View Klasse. Nicht verwechseln. In SwiftUI ist eine @State Variable eine Variable, die…“) |
(kein Unterschied)
|
Version vom 27. Januar 2023, 08:57 Uhr
Hinweis: @state ist nicht für UIView verfügbar sondern für die View Klasse. Nicht verwechseln.
In SwiftUI ist eine @State Variable eine Variable, die verwendet wird, um den Zustand eines View zu speichern. Wenn der Wert einer @State Variable sich ändert, wird die Ansicht automatisch neu gerendert, um den neuen Zustand widerzuspiegeln.
@State Variablen werden verwendet, um den internen Zustand eines Views zu speichern, wie z.B. den aktuellen Wert eines Textfeldes, das ausgewählte Element in einer Liste oder den auf-/zugeklappten Zustand eines Views. Sie werden auf View-Ebene definiert und können von allen Unteransichten dieses Views aufgerufen und modifiziert werden.
Hier ist ein Beispiel dafür, wie man eine @State Variable in einer SwiftUI Ansicht verwendet:
struct MyView: View {
@State private var text = "Hallo Welt"
var body: some View {
TextField("Geben Sie Text ein", text: $text)
}
}In diesem Beispiel wird die @State Variable text verwendet, um den aktuellen Text im TextField zu speichern. Wenn der Benutzer im Textfeld etwas eingibt, wird der Wert der text Variable aktualisiert und die Ansicht wird neu gerendert, um den neuen Wert widerzuspiegeln.
Es ist wichtig zu beachten, dass @State Eigenschaften nur innerhalb des Objekts, das es deklariert, von self modifiziert werden dürfen und auch nicht zwischen verschiedenen Ansichten geteilt werden können.
@State Variablen ähneln @ObservedObject und @EnvironmentObject, da sie alle den Zustand einer Ansicht speichern, aber sie haben unterschiedliche Anwendungsfälle. @ObservedObject wird verwendet, um den Zustand eines Objekts zu speichern, das von mehreren Ansichten geteilt wird, während @EnvironmentObject verwendet wird, um den Zustand eines Objekts zu speichern, das im gesamten App geteilt wird.