Sobes.tech
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 — az ObservableObject protokollt megvalósító objektumok figyelése, amelyek változásokat @Published tulajdonsá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.