SDK 化收尾: - 新增 RDPDFReaderView 本地 pod(阅读容器、成品控制器、划线/注释、画笔、 目录/设置面板、主题与持久化契约),Demo 精简为 PDFKit 页面提供者 + 持久化宿主 - Podfile/工程接入 RDPDFReaderView 与 SnapKit,示例书改用 PDF 阅读器示例文件 手机横屏单页竖滑修复: - cell 高度改为宽度适配后的纸张高度(sizeForItemAt + 宿主按页提供纵横比), 纵向超出一屏的内容由外层 collectionView 连续滚动承接,不再被裁掉 - 页面内部不再开启同向嵌套的兜底竖向拖动,修复外层滚动被吞、无法滚到下一页 - 修复 applyContentSize 先评估拖动开关后写 contentSize 的顺序缺陷 - 页码按视口中心命中 cell 计算,补 didEndDragging 兜底;旋转重锚点与 transitionToPage 改用真实布局位置 - 横竖屏同为竖滑时也重建 cell 并刷新全部可见页的适配配置 - 横屏单页点击不再跳页,只显隐工具栏;翻页交给连续竖滑 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
84 lines
4.5 KiB
Swift
84 lines
4.5 KiB
Swift
import Foundation
|
||
|
||
enum IDs {
|
||
static let demoStatus = "demo.status"
|
||
static let demoBooksTable = "demo.books.table"
|
||
static func demoBook(_ index: Int) -> String { "demo.book.\(index)" }
|
||
static let demoReaderState = "demo.reader.state"
|
||
|
||
static let readerBack = "epub.reader.back"
|
||
static let readerTitle = "epub.reader.title"
|
||
static let readerTopToolbar = "epub.reader.topToolbar"
|
||
static let readerBottomToolbar = "epub.reader.bottomToolbar"
|
||
static let readerContent = "epub.reader.content"
|
||
static let readerPaging = "epub.reader.paging"
|
||
static let readerBookmark = "epub.reader.bookmark"
|
||
static let readerToc = "epub.reader.toc"
|
||
static let readerBookmarks = "epub.reader.bookmarks"
|
||
static let readerHighlights = "epub.reader.highlights"
|
||
static let readerSettings = "epub.reader.settings"
|
||
static let readerTocPanel = "epub.reader.toc.panel"
|
||
static let readerTocTable = "epub.reader.toc.table"
|
||
static let readerTocNavBar = "epub.reader.toc.navbar"
|
||
static let readerBookmarksPanel = "epub.reader.bookmarks.panel"
|
||
static let readerBookmarksTable = "epub.reader.bookmarks.table"
|
||
static let readerBookmarksNavBar = "epub.reader.bookmarks.navbar"
|
||
static let readerSelectionText = "epub.reader.selection.text"
|
||
static let readerSelectionHighlight = "epub.reader.selection.高亮"
|
||
static let readerContentView = "epub.reader.content.view"
|
||
static let readerLoadingSpinner = "epub.reader.loadingSpinner"
|
||
static let readerHighlightsPanel = "epub.reader.highlights.panel"
|
||
static let readerHighlightsTable = "epub.reader.highlights.table"
|
||
static let readerHighlightsFilter = "epub.reader.highlights.filter"
|
||
static let readerHighlightsEmptyLabel = "epub.reader.highlights.empty"
|
||
static let readerHighlightsNavBar = "epub.reader.highlights.navbar"
|
||
static let readerBookmarksEmptyLabel = "epub.reader.bookmarks.empty"
|
||
static let readerNoteText = "epub.reader.note.text"
|
||
static let readerNoteActions = "epub.reader.note.actions"
|
||
static let readerNoteReturn = "epub.reader.note.return"
|
||
static let readerNoteOpen = "epub.reader.note.open"
|
||
|
||
// MARK: - Image PDF text selection and annotations
|
||
|
||
/// PDF demo currently retains the legacy EPUB content identifier for compatibility.
|
||
/// The text layer is the precise, image-coordinate based interaction surface.
|
||
static let pdfTextLayer = "pdf.reader.text.layer"
|
||
static let pdfOCRStatus = "pdf.reader.ocr.status"
|
||
/// PDF 选区菜单与 EPUB 相同,使用系统编辑菜单,按菜单项标题(复制/高亮/注释)定位。
|
||
static let pdfSelectionMenuCopy = "复制"
|
||
static let pdfSelectionMenuHighlight = "高亮"
|
||
static let pdfSelectionMenuAnnotate = "注释"
|
||
static let pdfCopyStatus = "pdf.reader.copy.status"
|
||
|
||
static let pdfAnnotations = "pdf.reader.annotations"
|
||
static let pdfAnnotationsPanel = "pdf.reader.annotations.panel"
|
||
static let pdfAnnotationsTable = "pdf.reader.annotations.table"
|
||
static let pdfAnnotationsFilter = "pdf.reader.annotations.filter"
|
||
static let pdfAnnotationsEmpty = "pdf.reader.annotations.empty"
|
||
static func pdfAnnotationRow(_ id: String) -> String { "pdf.reader.annotations.row.\(id)" }
|
||
|
||
static let pdfAnnotationEditor = "pdf.reader.annotation.editor"
|
||
static let pdfAnnotationInput = "pdf.reader.annotation.input"
|
||
static let pdfAnnotationSave = "pdf.reader.annotation.save"
|
||
static let pdfAnnotationCancel = "pdf.reader.annotation.cancel"
|
||
|
||
static let readerSearch = "epub.reader.search"
|
||
static let searchBar = "epub.reader.search.bar"
|
||
static let searchField = "epub.reader.search.field"
|
||
static let searchPrevious = "epub.reader.search.previous"
|
||
static let searchNext = "epub.reader.search.next"
|
||
static let searchClose = "epub.reader.search.close"
|
||
static let searchCount = "epub.reader.search.count"
|
||
|
||
static let settingsScroll = "epub.reader.settings.scroll"
|
||
static let settingsBrightness = "epub.reader.settings.brightness"
|
||
static let settingsFontIncrease = "epub.reader.settings.font.increase"
|
||
static let settingsFontDecrease = "epub.reader.settings.font.decrease"
|
||
static let settingsFontValue = "epub.reader.settings.font.value"
|
||
static let settingsFontChoice = "epub.reader.settings.font.choice"
|
||
static let settingsLineHeight = "epub.reader.settings.lineHeight"
|
||
static let settingsDisplayType = "epub.reader.settings.displayType"
|
||
static let settingsDone = "epub.reader.settings.done"
|
||
static func settingsTheme(_ index: Int) -> String { "epub.reader.settings.theme.\(index)" }
|
||
}
|