Конечно! Давайте создадим простое приложение на SwiftUI, которое будет отображать список задач (to-do list). Это приложение позволит пользователям добавлять новые задачи и отмечать их как выполненные.
Вот пример приложения на SwiftUI:
import SwiftUI
struct Task: Identifiable {
let id = UUID()
let title: String
var isCompleted: Bool = false
}
class TaskViewModel: ObservableObject {
@Published var tasks: [Task] = []
func addTask(title: String) {
let newTask = Task(title: title)
tasks.append(newTask)
}
func toggleTaskCompletion(task: Task) {
if let index = tasks.firstIndex(where: { $0.id == task.id }) {
tasks[index].isCompleted.toggle()
}
}
}
struct ContentView: View {
@State private var newTaskTitle = ""
@ObservedObject var viewModel = TaskViewModel()
var body: some View {
NavigationView {
VStack {
HStack {
TextField("Введите задачу", text: $newTaskTitle)
.textFieldStyle(RoundedBorderTextFieldStyle())
Button(action: {
guard !newTaskTitle.isEmpty else { return }
viewModel.addTask(title: newTaskTitle)
newTaskTitle = ""
}) {
Text("Добавить")
}
}
.padding()
List {
ForEach(viewModel.tasks) { task in
HStack {
Button(action: {
viewModel.toggleTaskCompletion(task: task)
}) {
Image(systemName: task.isCompleted ? "checkmark.circle.fill" : "circle")
}
Text(task.title)
.strikethrough(task.isCompleted)
}
}
.onDelete(perform: deleteTask)
}
}
.navigationTitle("Задачи")
}
}
func deleteTask(at offsets: IndexSet) {
viewModel.tasks.remove(atOffsets: offsets)
}
}
@main
struct ToDoListApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Описание кода:
Модель задачи (Task): Создается структура
Task, которая содержит свойства для идентификатора, названия задачи и состояния выполнения.Модель представления (TaskViewModel): Это класс, который соответствует
ObservableObject. Он хранит список задач и предоставляет функции для добавления задач и переключения их состояния.Интерфейс (ContentView): Это основной вид, который отображает поле для ввода задачи, кнопку для добавления задачи и список текущих задач. Каждая задача может быть отмечена как выполненная или удалена.
Основное приложение (ToDoListApp): Точка входа в приложение.
Как запустить приложение:
- Откройте Xcode и создайте новый проект.
- Выберите шаблон "App" и установите SwiftUI в качестве пользовательского интерфейса.
- Замените содержимое файлов
ContentView.swiftиYourAppNameApp.swiftна предоставленный код. - Запустите проект на симуляторе или реальном устройстве.
Теперь у вас есть простое приложение для управления задачами на SwiftUI!
