如何知道用户何时在 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 应用程序中,我使用 PDFViewpdfView.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 中滑动到下一页?的主要内容,如果未能解决你的问题,请参考以下文章

如何知道应用程序何时收到通知以及用户何时在iOS中点击通知

如何在 python 中使用 pdfkit 指定 PDF 页面大小

如何知道应用程序何时被用户强行关闭?

如何在 iOS、PDFKit、swift 中获取 pdf 页面的准确 X 和 Y 原点值

如何知道用户何时在 PDFView 中滑动到下一页? - 安卓

如何使用 PDFkit 检测滚动到 PDF 中的另一个页面