如何知道用户何时在 PDFKit 的 PDFView 中滑动到下一页?
Posted
技术标签:
【中文标题】如何知道用户何时在 PDFKit 的 PDFView 中滑动到下一页?【英文标题】:How to know when user swipes to next page in PDFView of PDFKit? 【发布时间】:2018-05-22 13:53:15 【问题描述】:在我的 ios 应用程序中,我使用 PDFView
和 pdfView.usePageViewController(true, withViewOptions: nil)
。
当用户滑动到另一个页面时,我想隐藏PDFThumbnailView
。
我已经查看了PDFViewDelegate
,但是没有合适的函数可以使用。
【问题讨论】:
【参考方案1】:您可以尝试像这样为 PDFViewPageChanged 通知添加观察者
// Add page changed listener
NotificationCenter.default.addObserver(
pdfView,
selector: #selector(handlePageChange(notification:)),
name: Notification.Name.PDFViewPageChanged,
object: nil)
然后处理换页事件:
@objc private func handlePageChange(notification: Notification)
// Do your stuff here like hiding PDFThumbnailView...
希望对你有帮助
【讨论】:
我收到了一个InvalidArgumentException
。应该是这样的 addObserver(self, ... object: pdfView)
。否则它会尝试在PDFView
对象上调用handlePageChange
。编辑您的答案,我会将其标记为正确:)
知道如何获取新页面吗? :)【参考方案2】:
使用PDFViewPageChanged 通知
斯威夫特
// Add page change observer
NotificationCenter.default.addObserver(self,
selector: #selector(pageDidChange(notification:)),
name: Notification.Name.PDFViewPageChanged,
object: nil)
@objc private func pageDidChange(notification: Notification)
// pdfView is of type PDFView
let currentPageNumber = pdfView.document?.index(for: pdfView.currentPage!)
目标 C
// Add page change observer
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(pageDidChange:) name:PDFViewPageChangedNotification object:nil];
- (void) pageDidChange:(NSNotification *)notification
// _pdfView is of type PDFView
NSUInteger currentPageNumber = [_pdfView.document indexForPage:_pdfView.currentPage];
【讨论】:
以上是关于如何知道用户何时在 PDFKit 的 PDFView 中滑动到下一页?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 python 中使用 pdfkit 指定 PDF 页面大小
如何在 iOS、PDFKit、swift 中获取 pdf 页面的准确 X 和 Y 原点值