Свойство @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.
Задание
ЛегкоЗавершите счётчик нажатий. Действие кнопки пустое: при каждом нажатии добавляйте 1 к taps, чтобы после одного нажатия отображался текст Taps: 1, а после двух — Taps: 2.
Попробуйте сами
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Введение в SwiftUI
10Проект — Coddy Coffee
Обзор проектаЭкраны напитков2Отображение содержимого
Текстовые представленияЧисла в текстеШрифтыЦветаSF SymbolsПовторение — ценник5Состояние и кнопки
КнопкиСвойство @StateСостояние «истина или ложь»Условные представленияПовторение — счётчик очков6Ввод данных пользователем
Текстовое полеПереключательСчётчик и ползунокВыборПовторение — форма заказаПотренируйтесь самостоятельно: Песочница Swift