修改分页问题
This commit is contained in:
@@ -139,9 +139,10 @@ struct RDEPUBPageLayoutSnapshot {
|
||||
var lines: [RDEPUBPageLine] = []
|
||||
var runs: [RDEPUBPageRun] = []
|
||||
var attachments: [RDEPUBPageAttachment] = []
|
||||
let pageOffset = page.pageStartOffset
|
||||
|
||||
for dtLine in dtLines {
|
||||
let lineRange = dtLine.stringRange()
|
||||
let lineRange = offset(dtLine.stringRange(), by: pageOffset)
|
||||
let line = RDEPUBPageLine(
|
||||
stringRange: lineRange,
|
||||
frame: dtLine.frame,
|
||||
@@ -154,7 +155,7 @@ struct RDEPUBPageLayoutSnapshot {
|
||||
|
||||
if let glyphRuns = dtLine.glyphRuns as? [DTCoreTextGlyphRun] {
|
||||
for run in glyphRuns {
|
||||
let runRange = run.stringRange()
|
||||
let runRange = offset(run.stringRange(), by: pageOffset)
|
||||
let isAttachment = run.attachment != nil
|
||||
runs.append(
|
||||
RDEPUBPageRun(
|
||||
@@ -182,7 +183,7 @@ struct RDEPUBPageLayoutSnapshot {
|
||||
}
|
||||
}
|
||||
|
||||
let visibleRange = layoutFrame.visibleStringRange()
|
||||
let visibleRange = offset(layoutFrame.visibleStringRange(), by: pageOffset)
|
||||
|
||||
return RDEPUBPageLayoutSnapshot(
|
||||
page: page,
|
||||
@@ -210,5 +211,12 @@ struct RDEPUBPageLayoutSnapshot {
|
||||
: nil
|
||||
return (placement, kind)
|
||||
}
|
||||
|
||||
private static func offset(_ range: NSRange, by offset: Int) -> NSRange {
|
||||
guard range.location != NSNotFound else {
|
||||
return range
|
||||
}
|
||||
return NSRange(location: range.location + offset, length: range.length)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user