さまざまな 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
なぜこれが発生するのかについての手がかりはありますか?