安全区域改为从 key window 动态获取
- 新增 RDEPUBSafeArea:参考 GKNavigationBarSwift 的 keyWindow 三级查找与临时 window 兜底 - 移除 reflowableContentInsets 中 top/bottom 40 的固定默认值,改按设备真实安全区生成 - 各取安全区处的 ?? .zero 兜底改为回退到 key window 值 - DEBUG 构建下为文本可读区域绘制红色边框,方便查看排版范围 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
ca408c20ab
commit
d0efe3f2cc
@@ -109,7 +109,7 @@ public struct RDEPUBReaderConfiguration: Equatable {
|
||||
showsTableOfContents: Bool = true,
|
||||
allowsHighlights: Bool = true,
|
||||
showsSettingsPanel: Bool = true,
|
||||
reflowableContentInsets: UIEdgeInsets = UIEdgeInsets(top: 40, left: 16, bottom: 40, right: 16),
|
||||
reflowableContentInsets: UIEdgeInsets = RDEPUBSafeArea.defaultReflowableContentInsets(),
|
||||
fixedContentInset: UIEdgeInsets = .zero,
|
||||
theme: RDEPUBReaderTheme = .light,
|
||||
darkImageAdjustmentEnabled: Bool = true,
|
||||
@@ -172,11 +172,13 @@ extension RDEPUBReaderConfiguration {
|
||||
func makePreferences(safeAreaInsets: UIEdgeInsets = .zero) -> RDEPUBPreferences {
|
||||
// Use the larger of reflowableContentInsets and safeAreaInsets for each edge
|
||||
// to prevent content from being hidden under Dynamic Island / home indicator.
|
||||
// Falls back to the key-window safe area when the caller has no laid-out view.
|
||||
let resolvedSafeAreaInsets = RDEPUBSafeArea.resolve(safeAreaInsets)
|
||||
let safeInsets = UIEdgeInsets(
|
||||
top: max(reflowableContentInsets.top, safeAreaInsets.top),
|
||||
left: max(reflowableContentInsets.left, safeAreaInsets.left),
|
||||
bottom: max(reflowableContentInsets.bottom, safeAreaInsets.bottom),
|
||||
right: max(reflowableContentInsets.right, safeAreaInsets.right)
|
||||
top: max(reflowableContentInsets.top, resolvedSafeAreaInsets.top),
|
||||
left: max(reflowableContentInsets.left, resolvedSafeAreaInsets.left),
|
||||
bottom: max(reflowableContentInsets.bottom, resolvedSafeAreaInsets.bottom),
|
||||
right: max(reflowableContentInsets.right, resolvedSafeAreaInsets.right)
|
||||
)
|
||||
return RDEPUBPreferences(
|
||||
fontSize: fontSize,
|
||||
|
||||
Reference in New Issue
Block a user