Справочная информация
В настоящее время я разрабатываю приложение, которое состоит из полноэкранного PDFView, и я хочу, чтобы программа запомнила позицию в документе, прежде чем представление будет закрыто, чтобы пользователь мог продолжить с того места, где он остановился.
Реализация
Упрощенную версию приложения можно понимать как средство просмотра PDF-файлов с использованием PDFKit.PDFView. Раскадровка состоит из UIView, подключенного к классу PDFView DocumentView (который соответствует UIViewController). Представление инициализируется с помощью следующего процесса:
In viewDidLoad:
Код: Выделить всё
let PDF: PDFDocument = GetPDFFromServer()
DocumentView.document = PDF!
DocumentView.autoScales = true
... (other settings)
// Set PDF Destination
let Destination: PDFDestination = GetStoredDestination()
// Code with issues
DocumentView.go(to: Destination)
Код: Выделить всё
StoreDestination(DocumentView.currentDestination)
Я понял, что код не работает должным образом; представление не возвращается в предыдущее местоположение.
В ходе отладки я понял, что это может быть связано с несогласованным поведением DocumentView.go(к месту назначения: PDFDestination) и DocumentView.currentDestination.
Чтобы гарантировать, что ошибка не вызвана ошибками при сохранении местоположения, для проверки проблемы используется следующий код с помощью многостраничного документа:
В представленииDidLoad
Код: Выделить всё
Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { _ in
DispatchQueue.main.async {
self.DocumentView.go(to:self.DocumentView.currentDestination!)
}
})
Ожидаемое: расположение документа не должно меняться - код отправляется к своему текущему пункту назначения каждую 1 секунду, что не должно иметь никаких последствий. поскольку «currentDestination» должно быть «текущим местом назначения документа в соответствии с документами»)
Замечено: после выполнения страница автоматически прокручивалась вниз на фиксированную величину. смещение.
Тот же результат наблюдался на симуляторе iPadOS 14.5 и iPad OS 15 iPad Air (4-го поколения).
Что могло пойти не так ?
Было бы здорово, если бы кто-нибудь помог.
С уважением,
Линкольн
Этот вопрос был первоначально опубликован на форуме разработчиков Apple более недели назад; Ответов не было получено более недели, поэтому я решил попытать счастья здесь, на StackOverflow
Подробнее здесь: https://stackoverflow.com/questions/693 ... nd-pdfview