Menu
Coddy logo textTech

@Stateプロパティ

CoddyのSwiftジャーニー「SwiftUI入門」セクションの一部。レッスン 20/50。

ビューの本体は、そのデータから再計算されます。変化するデータを持つには、プロパティに @State を付けます。状態プロパティが変化すると、SwiftUI は本体を再度実行し、画面を更新します。

struct ContentView: View {
    @State private var count = 0

    var body: some View {
        VStack {
            Text("Count: \(count)")
            Button("Add one") {
                count += 1
            }
        }
    }
}

タップするたびに count += 1 が実行され、テキストには新しい数値が表示されます。テキストを自分で更新することはありません。テキストは count に基づいて記述されているため、その値に追従します。

ビュー内の通常のvarは、ビューが構造体であるため、その本体から変更できません。@Stateは構造体の外部に値を保存するため、再描画のたびに値が保持されます。状態にはprivateを付けます。このビューに属するためです。

challenge icon

チャレンジ

簡単

タップカウンターを完成させましょう。ボタンのアクションが空になっています。タップするたびに1tapsに加算し、1回タップした後はテキストがTaps: 1と表示され、2回タップした後はTaps: 2と表示されるようにしてください。

自分で試してみよう

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

SwiftUI入門のすべてのレッスン

自分で練習してみよう: Swiftプレイグラウンド