Menu
Coddy logo textTech

Свойство @State

Часть раздела Введение в SwiftUI путешествия по Swift на Coddy. Урок 20 из 50.

Содержимое представления пересчитывается на основе его данных. Чтобы иметь данные, которые изменяются, пометьте свойство с помощью @State. Когда свойство состояния изменяется, SwiftUI снова выполняет body и обновляет экран:

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 во view нельзя изменить из его тела, потому что view — это структуры. @State хранит значение вне структуры, поэтому оно сохраняется при каждой перерисовке. Помечай состояние как private: оно принадлежит этому view.

challenge icon

Задание

Легко

Завершите счётчик нажатий. Действие кнопки пустое: при каждом нажатии добавляйте 1 к taps, чтобы после одного нажатия отображался текст Taps: 1, а после двух — Taps: 2.

Попробуйте сами

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Введение в SwiftUI

Потренируйтесь самостоятельно: Песочница Swift