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