闲社服务运行正常AI智能体自动化平台
s

SwiftUI界面模式

技能标识:swiftui-ui-patterns

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
检测标记
后台标记通过
免费
免费获取
4
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

SwiftUI界面模式

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
返回顶部