fix(ios): ZXSettingToggleRow 支持自定义图标 + iCloud cloud icon

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
wangdl 2026-05-30 09:52:45 +08:00
parent ecc2ad5aa8
commit 794cd4cdd9

View File

@ -58,7 +58,7 @@ struct SettingsView: View {
sectionHeader("数据") sectionHeader("数据")
VStack(spacing: 0) { VStack(spacing: 0) {
ZXSettingToggleRow(title: "iCloud 同步", icon: "icon-cloud", color: Color.zxTeal, isOn: $iCloudSync) ZXSettingToggleRow(title: "iCloud 同步", icon: "icon-cloud", color: Color.zxTeal, isOn: $iCloudSync, isCustom: true)
ZXSettingDivider() ZXSettingDivider()
ZXSettingToggleRow(title: "自动备份", icon: "arrow.triangle.2.circlepath", color: Color.zxAccent, isOn: $autoBackup) ZXSettingToggleRow(title: "自动备份", icon: "arrow.triangle.2.circlepath", color: Color.zxAccent, isOn: $autoBackup)
} }
@ -171,10 +171,11 @@ struct ZXSettingRow: View {
} }
struct ZXSettingToggleRow: View { struct ZXSettingToggleRow: View {
let title: String; let icon: String; let color: Color; @Binding var isOn: Bool let title: String; let icon: String; let color: Color; @Binding var isOn: Bool; var isCustom: Bool = false
var body: some View { var body: some View {
HStack(spacing: 12) { HStack(spacing: 12) {
Image(systemName: icon).font(.system(size: 18)).foregroundColor(color) if isCustom { Image(icon).resizable().scaledToFit().frame(width: 20, height: 20).foregroundColor(color) }
else { Image(systemName: icon).font(.system(size: 18)).foregroundColor(color) }
Text(title).font(.system(size: 14, weight: .semibold)).foregroundColor(Color.zxF0) Text(title).font(.system(size: 14, weight: .semibold)).foregroundColor(Color.zxF0)
Spacer() Spacer()
Toggle("", isOn: $isOn).labelsHidden().tint(Color.zxPurple) Toggle("", isOn: $isOn).labelsHidden().tint(Color.zxPurple)