Junior — Middle
Milyen módszerek és mechanizmusok vannak a SwiftUI-ban a felhasználói felület frissítésére adatok változásakor?
sobes.tech MI
Válasz az MI-től
SwiftUI-ban az adatok változásakor a felhasználói felület frissítése egy reaktív mechanizmuson keresztül történik, amely állapotburkolatokkal ellátott tulajdonságokra épül:
@State— a nézeten belüli helyi állapothoz. Az érték változásakor a nézet automatikusan újrarajzolódik.@Binding— az állapot hivatkozásának átadása nézetek között.@ObservedObjectés@StateObject— azObservableObjectprotokollt megvalósító objektumok figyelése, amelyek változásokat@Publishedtulajdonságokon keresztül tesznek közzé.@EnvironmentObject— objektumok átadása a nézethierarchián keresztül.
Példa:
class UserData: ObservableObject {
@Published var name: String = ""
}
struct ContentView: View {
@StateObject var userData = UserData()
var body: some View {
VStack {
TextField("Név megadása", text: $userData.name)
Text("Szia, \(userData.name)!")
}
}
}
Amikor a userData.name megváltozik, a SwiftUI automatikusan frissíti a képernyőn lévő szöveget. Ez a megközelítés lehetővé teszi a UI deklaratív leírását, és a keretrendszer gondoskodik a frissítésekről, amikor az adatok változnak.