fix(reader): stabilize pagination display and page curl reuse

This commit is contained in:
shen
2026-05-26 21:37:39 +08:00
parent 83b705b9ae
commit 736902b489
4 changed files with 104 additions and 23 deletions
@@ -130,7 +130,8 @@ struct RDEPUBPageLayoutSnapshot {
#if canImport(DTCoreText)
static func build(
from layoutFrame: DTCoreTextLayoutFrame,
page: RDEPUBTextPage
page: RDEPUBTextPage,
contentOffsetBase: Int
) -> RDEPUBPageLayoutSnapshot? {
guard let dtLines = layoutFrame.lines as? [DTCoreTextLayoutLine], !dtLines.isEmpty else {
return nil
@@ -139,7 +140,7 @@ struct RDEPUBPageLayoutSnapshot {
var lines: [RDEPUBPageLine] = []
var runs: [RDEPUBPageRun] = []
var attachments: [RDEPUBPageAttachment] = []
let pageOffset = page.pageStartOffset
let pageOffset = contentOffsetBase
for dtLine in dtLines {
let lineRange = offset(dtLine.stringRange(), by: pageOffset)