主题
添加 / 删除 / 标记任务
实现待办事项的增删改是核心功能,SwiftUI 结合状态管理使操作简洁高效。
添加任务
通过绑定输入框内容,创建新任务并加入列表:
swift
@State private var todos: [TodoItem] = []
@State private var newTodoTitle: String = ""
func addNewTodo() {
guard !newTodoTitle.isEmpty else { return }
let newTodo = TodoItem(title: newTodoTitle)
todos.append(newTodo)
newTodoTitle = ""
}
删除任务
使用 List
的内置删除功能,结合 onDelete
处理删除操作:
swift
List {
ForEach(todos) { todo in
Text(todo.title)
}
.onDelete { indexSet in
todos.remove(atOffsets: indexSet)
}
}
标记任务完成
通过点击切换任务完成状态:
swift
ForEach($todos) { $todo in
HStack {
Image(systemName: todo.isCompleted ? "checkmark.circle.fill" : "circle")
.onTapGesture {
todo.isCompleted.toggle()
}
Text(todo.title)
.strikethrough(todo.isCompleted)
}
}
状态更新
利用 @State
或 @ObservedObject
确保界面随数据变化自动刷新。
小结
添加、删除和标记任务功能简单易实现,是待办事项 App 用户交互的基础。