LoginSignup
0
0

More than 1 year has passed since last update.

SwiftUIの状態変数とは何か

Posted at

Rubyから学習を始めた身としては衝撃でした

ざっくり結論

SwiftUIにおいてビューの状態を保持するために使用される変数
ビュー内で値が変更されると自動的に再描画される

解説

より引用

@StateはSwiftUIの大きな特徴であるデータバインディングという仕組みの1つです。
データとViewを紐付けることでデータの更新時に自動的にViewも更新されるという連動的な仕組みがデータバインディングの特徴です。
また、@Stateが付与されたプロパティは”状態変数“とも呼ばれます。

@stateを用いて状態変数を定義することで、その中の値が変わった際に、自動的にviewに反映される

使い方

状態変数を@Stateで指定すれば良い
先の引用元にも事例は載っていますが、他にも以下のような使い方が出来る

.swift
struct ContentView: View {
    //状態変数textを定義
    @State var text = "Hello, World!"
    
    var body: some View {
        VStack {
            Text(text)
                .font(.largeTitle)

            //Buttonを押すことで、テキストメッセージがHello, SwiftUI!に変わる
            Button("Change Text") {
                self.text = "Hello, SwiftUI!"
            }
        }
    }
}
.swift
struct ContentView: View {
    //Boolean型の状態変数isOnを定義
    @State private var isOn = false
    
    var body: some View {
        VStack {
            //isOnがtrueの場合は "ON"、falseの場合は "OFF" と表示
            Text(isOn ? "ON" : "OFF")
                .font(.title)
            //タップされるたびに「isOn」の値が反転、false => true, true => false
            Button("Toggle") {
                self.isOn.toggle()
            }
        }
    }
}

参照

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0