SwiftUI: Do czego służy @Environment?
Opublikowano: 13.01.2024 - tagi: SwiftUI Swift Widok Wrapper Dane System
Czym jest @Environment?
SwiftUI pozwala widokowi na pobranie informacji o urządzeniu. Na przykład: jaki motyw graficzny ma ustawiony na swoim telefonie: jasny czy ciemny? Jakiego język jest ustawiony na urządzeniu?
Pozyskując takie informacje, możesz wykorzystać je w swojej aplikacji.
Za pobranie informacji systemowych odpowiedzialny jest wrapper: @Environment.
Pełną listę informacji, jakie możesz pobrać znajdziesz w EnvironmentValues
Przykład
import SwiftUI
struct ContentView: View {
@Environment(\.colorScheme) private var colorScheme
var body: some View {
VStack {
Button(colorScheme == .light ? "Light" : "Dark") {
}
.frame(width: 100, height: 50)
.foregroundColor(colorScheme == .light ? .white : .black)
.background(colorScheme == .light ? .black : .white)
}
}
}
W tym przykładzie za pomocą @Environment pobierana jest wartość z colorScheme, która zawiera informację, jaki motyw graficzny jest ustawiony w urządzeniu.
Na podstawie tego stylizowany jest odpowiednio przycisk.