Files
ReadViewSDK/Sources/RDReaderView/EPUBUI/RDEPUBReaderDelegate.swift
T
shenandshen 54798ba578 refactor: 添加中文注释 + 优化模块结构
- 给全部 78 个 Swift 源文件添加详细的中文注释(文件级、类级、方法级)
- 删除 LegacyRDReaderController/ 死代码目录(16 文件 4592 行)
- 根目录翻页容器文件移入 ReaderView/ 目录
- Resources/ 移入 EPUBCore/Resources/(与使用者归属一致)
- RDEPUBTextIndexTable.swift 移入 EPUBTextRendering/(消除反向依赖)
- RDURLReaderController.swift 移入 EPUBUI/(入口控制器归入 UI 层)
- 更新 podspec 资源路径
2026-05-25 10:19:14 +08:00

98 lines
4.5 KiB
Swift

import UIKit
// MARK: - 阅读器委托协议
/// EPUB 阅读器的委托协议
/// 用于向调用方通知阅读器的各种状态变更事件
/// 所有方法均提供默认空实现,调用方可选择性实现感兴趣的方法
public protocol RDEPUBReaderDelegate: AnyObject {
/// 阅读器成功打开书籍时调用
/// - Parameters:
/// - reader: 阅读器控制器
/// - publication: 解析后的出版物对象
func epubReader(_ reader: UIViewController, didOpen publication: RDEPUBPublication)
/// 阅读位置更新时调用(翻页、跳转等)
/// - Parameters:
/// - reader: 阅读器控制器
/// - location: 新的阅读位置
func epubReader(_ reader: UIViewController, didUpdateLocation location: RDEPUBLocation)
/// 阅读器翻到书籍末尾时调用
/// - Parameter reader: 阅读器控制器
func epubReaderDidReachEnd(_ reader: UIViewController)
/// 用户选中文本发生变化时调用
/// - Parameters:
/// - reader: 阅读器控制器
/// - selection: 当前选中文本,nil 表示取消选中
func epubReader(_ reader: UIViewController, didChangeSelection selection: RDEPUBSelection?)
/// 高亮标注列表更新时调用
/// - Parameters:
/// - reader: 阅读器控制器
/// - highlights: 当前所有高亮
func epubReader(_ reader: UIViewController, didUpdateHighlights highlights: [RDEPUBHighlight])
/// 书签列表更新时调用
/// - Parameters:
/// - reader: 阅读器控制器
/// - bookmarks: 当前所有书签
func epubReader(_ reader: UIViewController, didUpdateBookmarks bookmarks: [RDEPUBBookmark])
/// 搜索结果更新时调用
/// - Parameters:
/// - reader: 阅读器控制器
/// - result: 搜索结果摘要,nil 表示无搜索
func epubReader(_ reader: UIViewController, didUpdateSearchResult result: RDEPUBSearchResult?)
/// 当前搜索匹配项变化时调用
/// - Parameters:
/// - reader: 阅读器控制器
/// - match: 当前匹配项,nil 表示无匹配
func epubReader(_ reader: UIViewController, didChangeCurrentSearchMatch match: RDEPUBSearchMatch?)
/// 当前所在目录项更新时调用
/// - Parameters:
/// - reader: 阅读器控制器
/// - item: 当前目录项
func epubReader(_ reader: UIViewController, didUpdateCurrentTableOfContentsItem item: RDEPUBReaderTableOfContentsItem?)
/// 用户点击外部链接时调用
/// - Parameters:
/// - reader: 阅读器控制器
/// - url: 外部链接 URL
func epubReader(_ reader: UIViewController, didActivateExternalLink url: URL)
/// 阅读器发生错误时调用
/// - Parameters:
/// - reader: 阅读器控制器
/// - error: 错误对象
func epubReader(_ reader: UIViewController, didFailWithError error: Error)
/// 允许调用方自定义顶部工具栏
/// 在 viewDidLoad 时调用,可在工具栏上添加自定义按钮
/// - Parameters:
/// - reader: 阅读器控制器
/// - topToolView: 顶部工具栏视图
func epubReader(_ reader: UIViewController, configureTopToolView topToolView: RDEPUBReaderTopToolView)
}
// MARK: - 默认空实现
/// 所有委托方法的默认空实现,调用方可只实现需要的方法
public extension RDEPUBReaderDelegate {
func epubReader(_ reader: UIViewController, didOpen publication: RDEPUBPublication) {}
func epubReader(_ reader: UIViewController, didUpdateLocation location: RDEPUBLocation) {}
func epubReaderDidReachEnd(_ reader: UIViewController) {}
func epubReader(_ reader: UIViewController, didChangeSelection selection: RDEPUBSelection?) {}
func epubReader(_ reader: UIViewController, didUpdateHighlights highlights: [RDEPUBHighlight]) {}
func epubReader(_ reader: UIViewController, didUpdateBookmarks bookmarks: [RDEPUBBookmark]) {}
func epubReader(_ reader: UIViewController, didUpdateSearchResult result: RDEPUBSearchResult?) {}
func epubReader(_ reader: UIViewController, didChangeCurrentSearchMatch match: RDEPUBSearchMatch?) {}
func epubReader(_ reader: UIViewController, didUpdateCurrentTableOfContentsItem item: RDEPUBReaderTableOfContentsItem?) {}
func epubReader(_ reader: UIViewController, didActivateExternalLink url: URL) {}
func epubReader(_ reader: UIViewController, didFailWithError error: Error) {}
func epubReader(_ reader: UIViewController, configureTopToolView topToolView: RDEPUBReaderTopToolView) {}
}