0

我有一个包含不同 pdf 文档的视图,我希望能够检测每个文档何时到达最后一页。

我的方法是观察 PDFViewPageChanged 通知

documentId = ...
obs = NotificationCenter.default.addObserver(forName: .PDFViewPageChanged, object: nil, queue: nil) { (notification) in ...

      guard let notificationPdfView = notification.object as? PDFView,
            let currentPage = notificationPdfView.currentPage?.pageRef?.pageNumber,
            let totalPageNumber = notificationPdfView.document?.pageCount,
            let docStringCount = notificationPdfView.document?.string else { return }

      print("FB: notification: \(documentId) currentPage: \(currentPage)/\(totalPageNumber)" )
 }

然后检查当前页是否等于文档总页数。

唯一的问题是我收到通知,告诉我即使在我触摸 pdf 文件之前,当前页面已经更改,并且在某些情况下,文档被滚动到最后一页的条件被错误地满足。

FB: notification: Document 1 currentPage: 1/2
FB: notification: Document 1 currentPage: 1/2
FB: notification: Document 1 currentPage: 2/2 // <---- 
FB: notification: Document 1 currentPage: 1/2

关于为什么会发生这种情况的任何线索?

4

0 回答 0