我的时装店小游戏
95.66MB · 2025-10-30
动态列表(Dynamic List)
List(items) 创建基本动态列表Identifiable 协议的数据模型静态列表(Static List)
Section 分组内容Label 组件(图标+文字)ForEach 模式
List 中嵌套 ForEach
自定义行视图
删除功能
.onDelete 修饰符deleteTask(at:) 方法EditButton()
@State 数据更新移动功能
.onMove 修饰符moveTask(from:to:) 方法ObservableObject 集成
TaskManager 类@Published 属性@StateObject 和 @ObservedObject
数据模型扩展
TodoItem 添加 isPinned 属性dueDate 等额外属性滑动操作(Swipe Actions)
上下文菜单(Context Menu)
自定义按钮操作
TaskManager 方法扩展
togglePin(for:) - 切换置顶状态toggleCompletion(for:) - 切换完成状态duplicateTask(_:) - 复制任务addSampleTask() - 添加测试任务sortedTasks - 计算属性实现置顶排序pinnedTasks / unpinnedTasks - 分类属性列表样式
.listStyle(.automatic) - 默认样式.listStyle(.grouped) - 分组样式.listStyle(.insetGrouped) - 内嵌分组.listStyle(.plain) - 简洁样式分隔线定制
.listRowSeparatorTint() - 自定义分隔线颜色.listRowSeparator(.hidden) - 隐藏分隔线Rectangle 创建完全自定义分隔线背景定制
.scrollContentBackground(.hidden) - 关键修饰符ZStack 实现自定义背景LinearGradient 渐变背景.listRowBackground() - 行背景定制.listRowInsets() - 行边距调整基础导航
NavigationStack 替代 NavigationView
NavigationLink 实现列表项导航TaskDetailView
程序化导航
NavigationPath 管理导航状态.navigationDestination() 处理不同类型导航Button + 程序化导航替代 NavigationLink
Master-Detail 导航
NavigationSplitView 实现分屏导航@State 管理选中项状态ContentUnavailableView 处理空状态搜索功能
.searchable() 修饰符添加搜索栏ContentUnavailableView.search 处理无结果状态分区显示
编辑模式管理
.environment(.editMode) 环境值工具栏配置
ToolbarItem 添加工具栏按钮数据格式化
DateFormatter 扩展状态管理
@State vs @StateObject vs @ObservedObject
@Published 属性自动UI更新性能优化
用户体验
本文来自博客园,作者:,转载请注明原文链接: