refactor: rename RDReaderView -> RDEpubReaderView, update pod config and docs
- Rename source module from RDReaderView to RDEpubReaderView - Move all source files from Sources/RDReaderView/ to Sources/RDEpubReaderView/ - Update podspec: RDReaderView.podspec -> RDEpubReaderView.podspec - Update Podfile, demo project, and CocoaPods config for new pod name - Delete old RDReaderView pod support files from ReadViewDemo/Pods - Add new RDEpubReaderView pod support files - Update documentation (API ref, architecture, UML, conventions, etc.) - Add FixedLayoutRotationTests - Update .gitignore: exclude .DS_Store, manual unpack backups, _ssoft-output
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
|
||||
import UIKit
|
||||
|
||||
extension RDEpubReaderView {
|
||||
|
||||
public func register(contentView: UIView.Type, contentViewWithReuseIdentifier identifier: String) {
|
||||
contentViews[identifier] = contentView
|
||||
collectionView.register(RDEpubReaderContentCell.self, forCellWithReuseIdentifier: identifier)
|
||||
}
|
||||
|
||||
public func dequeueReusableContentView(withReuseIdentifier identifier: String, for pageNum: Int) -> UIView {
|
||||
if self.currentDisplayType != .pageCurl, let cell = self.collectionView.cellForItem(at: IndexPath(row: pageNum, section: 0)) as? RDEpubReaderContentCell, let containerView = cell.containerView {
|
||||
return containerView
|
||||
}
|
||||
let contentViewClass = contentViews[identifier]
|
||||
assert(contentViewClass != nil, "请调用register(contentView:contentViewWithReuseIdentifier:)")
|
||||
let contentView = contentViewClass!.init()
|
||||
return contentView
|
||||
}
|
||||
|
||||
public func pageContentView(pageNum: Int) -> UIView? {
|
||||
if currentDisplayType == .pageCurl {
|
||||
return (self.pageViewController.viewControllers?.first as? RDEpubReaderPageChildViewController)?.contentView
|
||||
} else {
|
||||
let cell = collectionView.cellForItem(at: IndexPath(item: pageNum, section: 0)) as? RDEpubReaderContentCell
|
||||
return cell?.containerView
|
||||
}
|
||||
}
|
||||
|
||||
public func resolvedSinglePageSize(pageNum: Int? = nil) -> CGSize {
|
||||
let targetPage = pageNum ?? (currentPage >= 0 ? currentPage : nil)
|
||||
if let targetPage,
|
||||
let contentView = pageContentView(pageNum: targetPage),
|
||||
contentView.bounds.width > 0,
|
||||
contentView.bounds.height > 0 {
|
||||
return contentView.bounds.size
|
||||
}
|
||||
|
||||
if currentDisplayType == .pageCurl {
|
||||
if let childViewController = pageViewController.viewControllers?.first as? RDEpubReaderPageChildViewController,
|
||||
childViewController.view.bounds.width > 0,
|
||||
childViewController.view.bounds.height > 0 {
|
||||
return childViewController.view.bounds.size
|
||||
}
|
||||
if pageViewController.view.bounds.width > 0, pageViewController.view.bounds.height > 0 {
|
||||
return pageViewController.view.bounds.size
|
||||
}
|
||||
return bounds.size
|
||||
}
|
||||
|
||||
let containerBounds = collectionView.bounds.size == .zero ? bounds.size : collectionView.bounds.size
|
||||
guard containerBounds.width > 0, containerBounds.height > 0 else {
|
||||
return bounds.size
|
||||
}
|
||||
|
||||
switch currentDisplayType {
|
||||
case .horizontalScroll:
|
||||
return CGSize(
|
||||
width: containerBounds.width / CGFloat(max(pagesPerScreen, 1)),
|
||||
height: containerBounds.height
|
||||
)
|
||||
case .verticalScroll:
|
||||
return containerBounds
|
||||
case .pageCurl:
|
||||
return bounds.size
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user