iOS 界面字体回退系统原生 + iPad 适配 + 登录列宽

- 移除自定义 UI 字体,界面统一系统原生:删 BrandFonts.swift(Orbit/Maple woff2 运行期 CTFontManager 注册 + UIKit 外观代理)+ AppDelegate 的 register 调用 + CDropApp 全局 .environment(\.font, .oBody);9 视图 .font(.o语义) → .font(.语义) 系统语义(日志 LogView 消息行本就 .caption.monospaced() 原生等宽);删 Sources/Fonts/(Orbit/Maple woff2 ~20MB)。仅留品牌字标 Fredoka(logo Wordmark),Justfile ios-fonts 改 Fredoka-only、.gitignore 收窄、新增 Shared/Fonts/README.md
- iPad 适配:RootView TabView 加 .tabViewStyle(.sidebarAdaptable)(iPad 常规宽度侧边栏 / iPhone 底部标签栏)+ ConversationView 消息线程 maxWidth 680 居中;project.yml 补方向键 UISupportedInterfaceOrientations(iPhone 竖 + 横)/ ~ipad(全 4 向),消除 iPad 多任务方向构建告警
- 登录页内容约束 maxWidth 420 居中,避免 iPad 宽屏主登录按钮 / 二维码区横向拉满(iPhone 不受影响)
- 文档:ios/PLAN.md §11.2 改系统原生字体 + 新增 §13 iPad;ios/PARITY.md 字体分叉条目回退 + 导航条目加 iPad + 2026-07-07 漂移行
- 已装 iPhone 15 Pro C + iPad Pro 13" M4 双端、用户确认
This commit is contained in:
2026-07-07 20:49:06 +08:00
parent adfd2912a5
commit 7f6e35908c
18 changed files with 123 additions and 174 deletions
+13 -9
View File
@@ -60,6 +60,10 @@ struct RootView: View
}
}
}
// iPad iPadFiles / Music +
// iPhone TabView sidebarAdaptable iPad
// NavigationStack ios/PLAN.md §13
.tabViewStyle(.sidebarAdaptable)
.tabBarMinimizeBehavior(.onScrollDown)
.tint(.cdropAccent)
// #2
@@ -162,7 +166,7 @@ struct TransferListView: View
label:
{
Image(systemName: "paperplane.fill")
.font(.oTitle2)
.font(.title2)
.padding(18)
}
.buttonStyle(.glassProminent)
@@ -220,7 +224,7 @@ struct TransferListView: View
HStack
{
Text(title)
.font(.oSubheadline)
.font(.subheadline)
.foregroundStyle(.secondary)
Spacer()
}
@@ -342,7 +346,7 @@ struct TransferCardView: View
? "arrow.down.circle" : "arrow.up.circle")
.foregroundStyle(.secondary)
Text(item.fileName)
.font(.oHeadline)
.font(.headline)
.lineLimit(1)
Spacer()
}
@@ -351,7 +355,7 @@ struct TransferCardView: View
ProgressView(value: progressOf(item))
}
Text(detailLine)
.font(.oCaption)
.font(.caption)
.foregroundStyle(.secondary)
}
.padding()
@@ -625,14 +629,14 @@ struct DeviceListView: View
if isSelf(dev)
{
Text(t("ios.devices.thisDevice"))
.font(.oCaption2)
.font(.caption2)
.foregroundStyle(Color.cdropAccent)
}
}
Text(dev.online
? t("settings.online")
: t("settings.lastSeen", [ "time": relativeTime(dev.lastSeen) ]))
.font(.oCaption)
.font(.caption)
.foregroundStyle(.secondary)
}
}
@@ -664,7 +668,7 @@ struct SettingsView: View
if !appVersion.isEmpty
{
Text(appVersion)
.font(.oCaption2)
.font(.caption2)
.foregroundStyle(.secondary)
}
}
@@ -718,7 +722,7 @@ struct SettingsView: View
if !engine.lastEngineLog.isEmpty
{
Text(engine.lastEngineLog)
.font(.oCaption2)
.font(.caption2)
.foregroundStyle(.secondary)
.lineLimit(1)
}
@@ -861,7 +865,7 @@ struct ReceivedFilesView: View
Text(url.lastPathComponent)
.lineLimit(1)
Text(fileSizeString(url))
.font(.oCaption)
.font(.caption)
.foregroundStyle(.secondary)
}
}