From 62714558dbf5c696217ea162917eece7b1fb78b0 Mon Sep 17 00:00:00 2001 From: wangdl Date: Sat, 30 May 2026 09:42:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(ios):=20=E9=80=80=E5=87=BA/=E7=9B=B8?= =?UTF-8?q?=E6=9C=BA/=E5=9E=83=E5=9C=BE=E6=A1=B6/=E6=89=93=E5=8B=BE=204=20?= =?UTF-8?q?=E4=B8=AA=E5=9B=BE=E6=A0=87=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - icon-logout: 退出登录 - icon-camera: 拍照上传 - icon-trash: 删除 - icon-check: 确认打勾 - 全局替换 systemName: trash/camera.fill/rectangle.portrait/checkmark Co-Authored-By: Claude Opus 4.7 --- .../Icons/icon-camera.imageset/Contents.json | 1 + .../Icons/icon-camera.imageset/icon-camera.svg | 1 + .../Icons/icon-check.imageset/Contents.json | 1 + .../Icons/icon-check.imageset/icon-check.svg | 1 + .../Icons/icon-logout.imageset/Contents.json | 1 + .../Icons/icon-logout.imageset/icon-logout.svg | 1 + .../Icons/icon-trash.imageset/Contents.json | 1 + .../Icons/icon-trash.imageset/icon-trash.svg | 1 + .../AIStudyApp/Features/AI/AIFeedbackPageView.swift | 2 +- AIStudyApp/AIStudyApp/Features/AI/ActiveRecallView.swift | 2 +- .../AIStudyApp/Features/Library/LibrarySubpages.swift | 8 ++++---- AIStudyApp/AIStudyApp/Features/Profile/SettingsView.swift | 2 +- 12 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-camera.imageset/Contents.json create mode 100644 AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-camera.imageset/icon-camera.svg create mode 100644 AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-check.imageset/Contents.json create mode 100644 AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-check.imageset/icon-check.svg create mode 100644 AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-logout.imageset/Contents.json create mode 100644 AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-logout.imageset/icon-logout.svg create mode 100644 AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-trash.imageset/Contents.json create mode 100644 AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-trash.imageset/icon-trash.svg diff --git a/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-camera.imageset/Contents.json b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-camera.imageset/Contents.json new file mode 100644 index 0000000..eaa3baa --- /dev/null +++ b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-camera.imageset/Contents.json @@ -0,0 +1 @@ +{"images":[{"filename":"icon-camera.svg","idiom":"universal"}],"info":{"author":"xcode","version":1},"properties":{"template-rendering-intent":"template","preserves-vector-representation":true}} diff --git a/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-camera.imageset/icon-camera.svg b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-camera.imageset/icon-camera.svg new file mode 100644 index 0000000..22668b2 --- /dev/null +++ b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-camera.imageset/icon-camera.svg @@ -0,0 +1 @@ + diff --git a/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-check.imageset/Contents.json b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-check.imageset/Contents.json new file mode 100644 index 0000000..0bdd6c2 --- /dev/null +++ b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-check.imageset/Contents.json @@ -0,0 +1 @@ +{"images":[{"filename":"icon-check.svg","idiom":"universal"}],"info":{"author":"xcode","version":1},"properties":{"template-rendering-intent":"template","preserves-vector-representation":true}} diff --git a/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-check.imageset/icon-check.svg b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-check.imageset/icon-check.svg new file mode 100644 index 0000000..79c1619 --- /dev/null +++ b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-check.imageset/icon-check.svg @@ -0,0 +1 @@ + diff --git a/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-logout.imageset/Contents.json b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-logout.imageset/Contents.json new file mode 100644 index 0000000..9d958b0 --- /dev/null +++ b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-logout.imageset/Contents.json @@ -0,0 +1 @@ +{"images":[{"filename":"icon-logout.svg","idiom":"universal"}],"info":{"author":"xcode","version":1},"properties":{"template-rendering-intent":"template","preserves-vector-representation":true}} diff --git a/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-logout.imageset/icon-logout.svg b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-logout.imageset/icon-logout.svg new file mode 100644 index 0000000..bb146f9 --- /dev/null +++ b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-logout.imageset/icon-logout.svg @@ -0,0 +1 @@ + diff --git a/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-trash.imageset/Contents.json b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-trash.imageset/Contents.json new file mode 100644 index 0000000..880e7ca --- /dev/null +++ b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-trash.imageset/Contents.json @@ -0,0 +1 @@ +{"images":[{"filename":"icon-trash.svg","idiom":"universal"}],"info":{"author":"xcode","version":1},"properties":{"template-rendering-intent":"template","preserves-vector-representation":true}} diff --git a/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-trash.imageset/icon-trash.svg b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-trash.imageset/icon-trash.svg new file mode 100644 index 0000000..b40b3d1 --- /dev/null +++ b/AIStudyApp/AIStudyApp/Assets.xcassets/Icons/icon-trash.imageset/icon-trash.svg @@ -0,0 +1 @@ + diff --git a/AIStudyApp/AIStudyApp/Features/AI/AIFeedbackPageView.swift b/AIStudyApp/AIStudyApp/Features/AI/AIFeedbackPageView.swift index 09f96cd..f9cf580 100644 --- a/AIStudyApp/AIStudyApp/Features/AI/AIFeedbackPageView.swift +++ b/AIStudyApp/AIStudyApp/Features/AI/AIFeedbackPageView.swift @@ -47,7 +47,7 @@ struct AIFeedbackPageView: View { } VStack(alignment: .leading, spacing: 8) { HStack(spacing: 8) { - Image(systemName: "checkmark.circle.fill").foregroundColor(Color.zxGreen) + Image("icon-check").foregroundColor(Color.zxGreen) Text("答对的部分").font(.system(size: 14, weight: .bold)).foregroundColor(Color.zxF0) } ForEach(["正确识别出过拟合是\"记住训练数据\"而非\"学习规律\"", "使用了死记硬背类比,方向正确且贴切"], id: \.self) { s in diff --git a/AIStudyApp/AIStudyApp/Features/AI/ActiveRecallView.swift b/AIStudyApp/AIStudyApp/Features/AI/ActiveRecallView.swift index a20612a..3ffd719 100644 --- a/AIStudyApp/AIStudyApp/Features/AI/ActiveRecallView.swift +++ b/AIStudyApp/AIStudyApp/Features/AI/ActiveRecallView.swift @@ -174,7 +174,7 @@ struct ActiveRecallView: View { private var submittedView: some View { VStack(spacing: 16) { HStack(spacing: 10) { - Image(systemName: "checkmark.circle.fill").font(.system(size: 22)).foregroundColor(Color.zxGreen) + Image("icon-check").font(.system(size: 22)).foregroundColor(Color.zxGreen) VStack(alignment: .leading, spacing: 3) { Text("回答已提交").font(.system(size: 14, weight: .bold)).foregroundColor(Color.zxGreen) Text("AI 分析中,稍后可查看反馈").font(.system(size: 12)).foregroundColor(Color.zxF04) diff --git a/AIStudyApp/AIStudyApp/Features/Library/LibrarySubpages.swift b/AIStudyApp/AIStudyApp/Features/Library/LibrarySubpages.swift index 7c51145..5ce5fe2 100644 --- a/AIStudyApp/AIStudyApp/Features/Library/LibrarySubpages.swift +++ b/AIStudyApp/AIStudyApp/Features/Library/LibrarySubpages.swift @@ -24,7 +24,7 @@ struct CreateLibraryPage: View { Image(uiImage: img).resizable().scaledToFill().frame(width: 120, height: 120).clipShape(RoundedRectangle(cornerRadius: 14)) } else { VStack(spacing: 6) { - Image(systemName: "camera.fill").font(.system(size: 22)).foregroundColor(Color.zxF04) + Image(systemName: "icon-camera").font(.system(size: 22)).foregroundColor(Color.zxF04) Text("上传").font(.system(size: 11)).foregroundColor(Color.zxF04) } } @@ -224,7 +224,7 @@ struct LibraryDetailPage: View { Button { Task { await deleteSource(src) } } label: { - Image(systemName: "trash").font(.system(size: 14)).foregroundColor(Color.zxF03) + Image("icon-trash").resizable().scaledToFit().frame(width: 14, height: 14).foregroundColor(Color.zxF03) } } .padding(12).background(Color.zxFill003).clipShape(RoundedRectangle(cornerRadius: 14)) @@ -256,14 +256,14 @@ struct LibraryDetailPage: View { Button { showBatchDeleteConfirm = true } label: { - Image(systemName: "trash").font(.system(size: 16)).foregroundColor(selectedIds.isEmpty ? Color.zxF03 : Color.zxCoral) + Image("icon-trash").resizable().scaledToFit().frame(width: 16, height: 16).foregroundColor(selectedIds.isEmpty ? Color.zxF03 : Color.zxCoral) } .disabled(selectedIds.isEmpty) } } else { ToolbarItem(placement: .topBarLeading) { Button { showDeleteConfirm = true } label: { - Image(systemName: "trash").font(.system(size: 16)).foregroundColor(Color.zxF03) + Image("icon-trash").resizable().scaledToFit().frame(width: 16, height: 16).foregroundColor(Color.zxF03) } } ToolbarItem(placement: .topBarTrailing) { diff --git a/AIStudyApp/AIStudyApp/Features/Profile/SettingsView.swift b/AIStudyApp/AIStudyApp/Features/Profile/SettingsView.swift index f4cc89f..0448606 100644 --- a/AIStudyApp/AIStudyApp/Features/Profile/SettingsView.swift +++ b/AIStudyApp/AIStudyApp/Features/Profile/SettingsView.swift @@ -82,7 +82,7 @@ struct SettingsView: View { showLogoutAlert = true } label: { HStack(spacing: 12) { - Image(systemName: "rectangle.portrait.and.arrow.right").font(.system(size: 16)).foregroundColor(.red).frame(width: 32, height: 32) + Image("icon-logout").font(.system(size: 16)).foregroundColor(.red).frame(width: 32, height: 32) Text("退出登录").font(.system(size: 14, weight: .semibold)).foregroundColor(.red) Spacer()