001project_wildgrowth/ios/WildGrowth/SF_SYMBOL_使用清单.md

260 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SF Symbol 使用清单
项目中所有使用 SF Symbol 的位置及对应 symbol 名称。
---
## 一、按文件列出
### VerticalScreenPlayerView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 56 | `arrow.left` | 返回按钮 |
| 154 | `exclamationmark.triangle` | 错误/警告提示 |
| 209 | `book.closed` | 课程/书本占位 |
| 814 | `exclamationmark.triangle` | 错误态占位 |
### MapView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 84 | `exclamationmark.triangle` | 错误提示 |
| 344 | `arrow.left` | 返回按钮 |
| 409 | `iconName`(动态) | 地图头水印,来自 `data.watermarkIcon` |
| 415 | `book.closed.fill` | 地图头水印兜底(无 watermarkIcon 时) |
| 597 | `lock.fill` | 节点锁定状态 |
| 607 | `checkmark` | 节点已完成 |
| 618 | `play.fill` | 节点可播放 |
### LoginView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 51 | `xmark` | 关闭弹窗 |
| 106 | `checkmark.square.fill` / `square` | 同意协议勾选(已选/未选) |
| 176 | `applelogo` | 苹果登录按钮 |
| 364 | `arrow.left` | 返回按钮 |
### ProfileView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 285 | `lock.circle.fill` | 锁定课程标识 |
| 393 | `course.watermarkIconName`(动态) | 课程卡片水印 |
| 421 | `course.watermarkIconName`(动态) | 课程卡片水印 |
| 530 | `exclamationmark.triangle.fill` | 错误提示 |
| 629 | `chevron.right` | 右箭头/进入 |
| 738 | `book.closed` | 空状态/占位 |
| 814 | `xmark.circle.fill` | 关闭/删除 |
| 713 | `pencil` | Label「编辑信息」 |
| 720 | `trash` | Label「删除」 |
### Views/Profile/CyberLearningIDCard.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 174 | `square.and.pencil` | 编辑 |
| 196 | `person.fill` | 头像占位 |
### NoteBottomSheetView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 52 | `quote.opening` | 引用/摘录 |
| 95 | `trash` | 删除 |
| 211 | `ellipsis` | 更多菜单 |
### Views/GrowthView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 71 | `book.closed` | 课程占位 |
| 208 | `lock.circle.fill` | 锁定课程 |
| 578 | `exclamationmark.circle.fill` / `checkmark.circle.fill` | Toast 类型图标 |
| 628 | `trash` | Label「移除课程」 |
| 635 | `doc.text` | Label「查看详情」 |
| 647 | `pencil` | Label「修改课程名称」 |
| 656 | `trash` | Label「移除课程」 |
### Views/Growth/GrowthTopBar.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 22 | `plus` | 添加按钮 |
### ArticleRichTextView.swiftUIKit 菜单)
| 行号 | Symbol | 用途 |
|------|--------|------|
| 740 | `highlighter` | 划线 |
| 745 | `bubble.left.and.bubble.right` | 写想法 |
| 750 | `doc.on.doc` | 复制 |
### Views/DiscoveryComponents.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 63 | `iconName`(动态) | 发现流卡片水印,来自 `item.watermarkIcon` |
| 145 | `iconName`(动态) | 信息流卡片水印,来自 `course.watermarkIcon` |
### Views/CreationHubView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 86 | `arrow.up.circle.fill` | 上传/发布 |
| 194 | `checkmark.circle.fill` | 成功状态 |
| 219 | `xmark.circle.fill` | 失败/关闭 |
| 460 | `icon`(动态) | 列表行图标,见下方取值 |
| 473 | `chevron.right` | 右箭头 |
| 557 | `book.closed` | 空状态 |
**CreationHubRow 的 `icon` 取值(写死在调用处):**
- `folder.fill` — 我的创作
- `doc.text.fill` — 从文档创建
- `arrow.triangle.2.circlepath` — 从已有课程复制
### DesignSystem.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 337 | `photo` | 占位图/无图 |
### Views/PersonaSelectionView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 102 | `chevron.left` | 返回 |
| 172 | `checkmark.circle.fill` | 已选 |
| 177 | `circle` | 未选 |
### Views/CreateCourseInputView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 158 | `doc.fill` | 文档 |
| 180 | `doc.fill` | 文档 |
| 199 | `xmark.circle.fill` | 关闭/清除 |
### Views/GenerationProgressView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 84 | `exclamationmark.triangle.fill` | 错误 |
| 163 | `checkmark.circle.fill` | 成功 |
| 198 | `xmark` | 关闭窗口 |
### NotebookListView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 117 | `lock.doc.fill` | 锁定笔记本 |
| 221 | `book.closed` | 空状态 |
| 193 | `pencil` | Label「编辑信息」 |
| 200 | `trash` | Label「删除」 |
### Views/Profile/ProfileNoteListView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 16 | `note.text` | 笔记列表 |
| 113 | `book.closed` | 空状态 |
### Views/Profile/EditProfileSheet.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 52 | `person.fill` | 头像占位 |
| 65 | `person.fill` | 头像占位 |
| 77 | `camera.fill` | 拍照/相册 |
### Views/Profile/AvatarPicker.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 14 | `photo.stack` | 相册选择 |
### PaywallView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 31 | `xmark.circle.fill` | 关闭 |
| 45 | `lock.open.fill` | 解锁/付费入口 |
| 133 | `checkmark.circle.fill` | 权益项勾选 |
### ToastView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 23 | `exclamationmark.circle.fill` / `checkmark.circle.fill` / `info.circle.fill` | 按 Toast 类型error/success/info |
### NoteTreeView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 136 | `square.and.pencil` | 编辑 |
### NoteListView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 73 | `note.text` | 笔记列表 |
| 218 | `book.closed.fill` | 空状态 |
| 257 | `highlighter` | 划线 |
| 307 | `note.text.badge.plus` | 新建笔记 |
### NoteInputView.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 35 | `quote.opening` | 引用样式 |
### Views/NoteTree/NoteTreeRow.swift
| 行号 | Symbol | 用途 |
|------|--------|------|
| 72 | `pencil` | Label「编辑」 |
| 76 | `trash` | Label「删除」 |
---
## 二、动态 Symbol 来源汇总
| 使用处 | 变量/属性 | 可能取值(来源) |
|--------|-----------|------------------|
| MapView 地图头水印 | `data.watermarkIcon` | 后端 API无则兜底 `book.closed.fill` |
| DiscoveryComponents 卡片水印 | `item.watermarkIcon` / `course.watermarkIcon` | 后端 API |
| ProfileView 课程水印 | `course.watermarkIconName` | 见 CourseModels 逻辑 |
**CourseModels.watermarkIconName 逻辑:**
- 若有 `watermarkIcon` 且非空 → 用该值
- 否则按 `type``system` → `book.closed.fill``single` → `doc.text.fill``vertical_screen` → `rectangle.portrait.fill`,默认 → `doc.text.fill`
---
## 三、按 Symbol 名称汇总(便于替换/统一)
| Symbol | 出现位置(简要) |
|--------|------------------|
| `arrow.left` | VerticalScreenPlayerView, MapView, LoginView 返回 |
| `arrow.up.circle.fill` | CreationHubView 上传 |
| `arrow.triangle.2.circlepath` | CreationHubView 从课程复制 |
| `applelogo` | LoginView 苹果登录 |
| `book.closed` | VerticalScreenPlayerView, ProfileView, GrowthView, CreationHubView, NotebookListView, ProfileNoteListView 占位/空态 |
| `book.closed.fill` | MapView 水印兜底CourseModels 中 type=systemNoteListView 空态 |
| `bubble.left.and.bubble.right` | ArticleRichTextView 写想法 |
| `camera.fill` | EditProfileSheet |
| `checkmark` | MapView 节点完成 |
| `checkmark.circle.fill` | 多处成功/已选/权益勾选 |
| `checkmark.square.fill` / `square` | LoginView 协议勾选 |
| `chevron.left` | PersonaSelectionView 返回 |
| `chevron.right` | ProfileView, CreationHubView 进入下一级 |
| `circle` | PersonaSelectionView 未选 |
| `doc.fill` | CreateCourseInputView |
| `doc.on.doc` | ArticleRichTextView 复制 |
| `doc.text` | GrowthView Label 查看详情 |
| `doc.text.fill` | CreationHubView 从文档创建CourseModels single/默认 |
| `ellipsis` | NoteBottomSheetView 更多 |
| `exclamationmark.circle.fill` | GrowthView/ToastView 错误 |
| `exclamationmark.triangle` | VerticalScreenPlayerView, MapView 警告 |
| `exclamationmark.triangle.fill` | ProfileView, GenerationProgressView 错误 |
| `folder.fill` | CreationHubView 我的创作 |
| `highlighter` | ArticleRichTextView 划线NoteListView 划线 |
| `info.circle.fill` | ToastView info 类型 |
| `lock.fill` | MapView 节点锁定 |
| `lock.circle.fill` | ProfileView, GrowthView 课程锁定 |
| `lock.doc.fill` | NotebookListView 笔记本锁定 |
| `lock.open.fill` | PaywallView 解锁 |
| `note.text` | ProfileNoteListView, NoteListView |
| `note.text.badge.plus` | NoteListView 新建笔记 |
| `pencil` | ProfileView, GrowthView, NotebookListView, NoteTreeRow Label 编辑 |
| `person.fill` | CyberLearningIDCard, EditProfileSheet |
| `photo` | DesignSystem 占位 |
| `photo.stack` | AvatarPicker |
| `play.fill` | MapView 节点播放 |
| `quote.opening` | NoteBottomSheetView, NoteInputView 引用 |
| `rectangle.portrait.fill` | CourseModels vertical_screen 水印 |
| `square.and.pencil` | CyberLearningIDCard, NoteTreeView 编辑 |
| `trash` | 多处 Label/按钮 删除 |
| `xmark` | LoginView, GenerationProgressView 关闭 |
| `xmark.circle.fill` | ProfileView, CreationHubView, CreateCourseInputView, PaywallView 关闭/清除 |
---
*文档根据当前代码静态分析生成,若新增或修改 SF Symbol 请同步更新此清单。*