返回顶部
s

swiftui-ui-patternsSwiftUI界面模式

Best practices and example-driven guidance for building SwiftUI views and components. Use when creating or refactoring SwiftUI UI, designing tab architecture with TabView, composing screens, or needing component-specific patterns and examples.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.2
安全检测
已通过
3,358
下载量
免费
免费
4
收藏
概述
安装方式
版本历史

swiftui-ui-patterns

SwiftUI UI 模式

快速开始

根据你的目标选择一条路径:

现有项目

  • - 确定功能或界面以及主要的交互模型(列表、详情、编辑器、设置、标签页)。
  • 在仓库中使用 rg TabView\( 或类似命令查找附近的示例,然后阅读最接近的 SwiftUI 视图。
  • 应用本地约定:优先使用 SwiftUI 原生状态,尽可能保持状态本地化,并使用环境注入处理共享依赖。
  • 从 references/components-index.md 中选择相关的组件参考文档,并遵循其指导。
  • 使用小型、专注的子视图和 SwiftUI 原生数据流构建视图。

新项目脚手架

  • - 从 references/app-scaffolding-wiring.md 开始,连接 TabView + NavigationStack + sheets。
  • 基于提供的骨架添加最小的 AppTab 和 RouterPath。
  • 根据你首先需要的 UI 选择下一个组件参考文档(TabView、NavigationStack、Sheets)。
  • 随着新界面的添加,扩展路由和 sheet 枚举。

通用规则

  • - 使用现代 SwiftUI 状态(@State、@Binding、@Observable、@Environment),避免不必要的视图模型。
  • 优先使用组合模式;保持视图小巧且专注。
  • 使用带有 .task 的 async/await 和显式的加载/错误状态。
  • 仅在编辑遗留文件时保持现有的遗留模式。
  • 遵循项目的格式化工具和风格指南。
  • Sheets:当状态代表选中的模型时,优先使用 .sheet(item:) 而非 .sheet(isPresented:)。避免在 sheet 主体内使用 if let。Sheets 应拥有自己的操作并在内部调用 dismiss(),而不是转发 onCancel/onConfirm 闭包。

新 SwiftUI 视图的工作流程

  1. 1. 定义视图的状态及其所有权位置。
  2. 确定需要通过 @Environment 注入的依赖。
  3. 勾勒视图层次结构,将重复部分提取到子视图中。
  4. 使用 .task 实现异步加载,必要时使用显式的状态枚举。
  5. 当 UI 可交互时,添加无障碍标签或标识符。
  6. 通过构建验证,并在需要时更新使用调用点。

组件参考文档

使用 references/components-index.md 作为入口点。每个组件参考文档应包含:

  • - 意图和最佳适用场景。
  • 带有本地约定的最小使用模式。
  • 陷阱和性能注意事项。
  • 当前仓库中现有示例的路径。

Sheet 模式

基于项目的 Sheet(推荐)

swift
@State private var selectedItem: Item?

.sheet(item: $selectedItem) { item in
EditItemSheet(item: item)
}

Sheet 拥有自己的操作

swift
struct EditItemSheet: View {
@Environment(\.dismiss) private var dismiss
@Environment(Store.self) private var store

let item: Item
@State private var isSaving = false

var body: some View {
VStack {
Button(isSaving ? 保存中… : 保存) {
Task { await save() }
}
}
}

private func save() async {
isSaving = true
await store.save(item)
dismiss()
}
}

添加新的组件参考文档

  • - 创建 references/.md。
  • 保持简短且可操作;链接到当前仓库中的具体文件。
  • 使用新条目更新 references/components-index.md。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 swiftui-ui-patterns-1776395305 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 swiftui-ui-patterns-1776395305 技能

通过命令行安装

skillhub install swiftui-ui-patterns-1776395305

下载

⬇ 下载 swiftui-ui-patterns v1.0.2(免费)

文件大小: 32.1 KB | 发布时间: 2026-4-17 15:51

v1.0.2 最新 2026-4-17 15:51
- Added macOS settings and menu

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部