260 lines
9.4 KiB
Markdown
260 lines
9.4 KiB
Markdown
# 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.swift(UIKit 菜单)
|
||
| 行号 | 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=system;NoteListView 空态 |
|
||
| `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 请同步更新此清单。*
|