SwiftUI/PropertyWrapper/@State
Jump to navigation
Jump to search
Type | PropertyWrapper |
---|---|
iOS | 13.0+ |
iPadOS | 13.0+ |
macOS | 10.15+ |
MacCatalyst | 13.0+ |
tvOS | 13.0+ |
watchOS | 6.0+ |
Website | developer |
@Stateで定義した変数を監視し、状態が変わったときにViewを再描画させたりしたいときに使う。
定義したViewに閉じて使うときは、@Stateを単体で使うが、複数Viewで共有して反映させる場合は、@Bindingや@EnvronmentObject とか使ったりする。
使用例
isPlayingの初期値は、falaseなので、buttonのisPlaying の判定で"Play" が表示される。 Playボタンを押すと、isPlayingの値をtoggle し、Buttonが再描画され、"Pause"が表示されるようになる。
struct PlayButton: View {
@State private var isPlaying: Bool = false
var body: some View {
Button(isPlaying ? "Pause" : "Play") {
isPlaying.toggle()
}
}
}