Swift PDFKit: противоречивое поведение с PDFView.currentDestination и PDFView.go (к месту назначения: PDFDestination)IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Swift PDFKit: противоречивое поведение с PDFView.currentDestination и PDFView.go (к месту назначения: PDFDestination)

Сообщение Anonymous »

Примечание: Вопрос пока остается нерешенным; отмеченный ответ обеспечивает хороший обходной путь - он работает, пока приложение еще открыто. Ответы по-прежнему приветствуются!
Справочная информация
В настоящее время я разрабатываю приложение, которое состоит из полноэкранного 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»