はじめに
今後、何回かに分けて@〜と表現されるSwiftUI特有の修飾子についてアウトプットしていく。
前提として、これら修飾子の付いたキーワードはプロパティラッパー
などと呼ばれる。
プロパティラッパーとは、ものすごく簡単にいうと、値の数を増やす・減らす・確認するなどを簡単にできる機能
みたいなニュアンスである。また、その値の変更に伴って、自動的に画面描画(画面の更新)をしてくれる便利な機能も存在する。
@Stateの詳細
- @Stateはプロパティラッパーの一つで、状態を管理するために使われる
- 値が更新されたらViewが自動的にリロード(再描画)される
- structの中で値を変更できる
- @Stateは親Viewとその配下の子Viewでしかアクセスできないため、private修飾子を付与し、外部からアクセスできないようにするのが好ましい。というか、それが暗黙のルール。
ソースコード
Swift
// Textの下にボタンがあり、ボタンを押すと、Textのテキストが変化する。で挙動を確認する。
struct ContentView: View {
@State private text = "Hello"
// Textの下にボタンを配置。ボタンを押すとTextのテキストが変化する。
var body: some View {
VStack {
Text(text)
Button("ボタン") {
// ボタンが押され、textには"こんにちは"が代入される。
// 代入、つまり、値を更新されるのでViewは再描画される。
text = "こんにちは"
}
}
}
}
おわりに
間違い等ありましたらコメント欄にてご指摘ください!
参考記事
開発環境
- Xcode-14.3
- Swift version 5.8