Właściwość @State
Część sekcji Wprowadzenie do SwiftUI ścieżki Swift w Coddy. Lekcja 20 z 50.
Widok jest obliczany ponownie na podstawie swoich danych. Aby mieć zmieniające się dane, oznacz właściwość za pomocą @State. Gdy właściwość stanu się zmienia, SwiftUI ponownie uruchamia body i aktualizuje ekran:
struct ContentView: View {
@State private var count = 0
var body: some View {
VStack {
Text("Count: \(count)")
Button("Add one") {
count += 1
}
}
}
}Każde stuknięcie wykonuje count += 1, a tekst pokazuje nową liczbę. Nie aktualizujesz tekstu samodzielnie: tekst jest opisany w odniesieniu do count, więc podąża za wartością.
Zwykłej zmiennej var w widoku nie można zmienić z jego treści, ponieważ widoki są strukturami. @State przechowuje wartość poza strukturą, dzięki czemu zachowuje ją przy każdym ponownym rysowaniu. Oznacz stan jako private: należy on do tego widoku.
Wyzwanie
ŁatwyUkończ licznik stuknięć. Akcja przycisku jest pusta: spraw, by każde stuknięcie dodawało 1 do taps, tak aby po jednym stuknięciu tekst wyświetlał Taps: 1, a po dwóch Taps: 2.
Spróbuj swoich sił
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Wprowadzenie do SwiftUI
10Projekt – Kawiarnia Coddy
Przegląd projektuEkrany napojów2Wyświetlanie treści
Widoki tekstoweLiczby w tekścieCzcionkiKolorySF SymbolsPodsumowanie — metka z ceną5Stan i przyciski
PrzyciskiWłaściwość @StateStan prawda lub fałszWidoki warunkowePodsumowanie — licznik punktów6Dane wejściowe użytkownika
Pole tekstowePrzełącznikPrzyciski krokowe i suwakSelektorPodsumowanie – formularz zamówieniaPoćwicz samodzielnie: Edytor online SwiftUI