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
+10 -7
View File
@@ -69,16 +69,16 @@ struct MessagesView: View
HStack(spacing: 12)
{
Image(systemName: deviceSymbol(convo.deviceType))
.font(.oTitle3)
.font(.title3)
.foregroundStyle(convo.online ? Color.green : Color.secondary)
.frame(width: 28)
VStack(alignment: .leading, spacing: 3)
{
Text(convo.peerName)
.font(.oBody)
.font(.body)
.lineLimit(1)
Text(previewText(convo))
.font(.oCaption)
.font(.caption)
.foregroundStyle(.secondary)
.lineLimit(1)
}
@@ -88,7 +88,7 @@ struct MessagesView: View
if convo.lastAt > 0
{
Text(relativeTime(convo.lastAt))
.font(.oCaption2)
.font(.caption2)
.foregroundStyle(.secondary)
}
// tab engine.unreadMessages
@@ -96,7 +96,7 @@ struct MessagesView: View
if unread > 0
{
Text("\(unread)")
.font(.oCaption2)
.font(.caption2)
.fontWeight(.bold)
.foregroundStyle(.white)
.padding(.horizontal, 7)
@@ -159,6 +159,9 @@ struct ConversationView: View
}
}
.padding()
// iPad iMessage
.frame(maxWidth: 680)
.frame(maxWidth: .infinity)
}
.onChange(of: thread.count) { scrollToLast(proxy) }
.onAppear { scrollToLast(proxy) }
@@ -213,7 +216,7 @@ struct ConversationView: View
.submitLabel(.send)
.onSubmit { send() }
Button { send() }
label: { Image(systemName: "paperplane.fill").font(.oTitle3) }
label: { Image(systemName: "paperplane.fill").font(.title3) }
.disabled(draft.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty)
}
.padding()
@@ -222,7 +225,7 @@ struct ConversationView: View
else
{
Text(t("ios.messages.viewOnly"))
.font(.oCaption)
.font(.caption)
.foregroundStyle(.secondary)
.frame(maxWidth: .infinity)
.padding()