iOS PDFKit Отключить отскок вертикальной прокрутки - PullRequest
2 голосов
/ 20 марта 2019

Как отключить отскок отказов в PDFView, используя PDFKit ?

Вид, в котором отображается PDF, не имеет опции отскока прокрутки .

Вот мой код:

if let path = Bundle.main.path(forResource: pdfObject, ofType: "pdf") {
    let url = URL(fileURLWithPath: path)
    if let pdfDocument = PDFDocument(url: url) {

        pdfView.autoresizesSubviews = true
        pdfView.autoresizingMask = [.flexibleWidth, .flexibleHeight,
                                    .flexibleTopMargin, .flexibleLeftMargin]

        pdfView.autoScales = true
        pdfView.displaysPageBreaks = true
        pdfView.displayDirection = .vertical
        pdfView.displayMode = .singlePageContinuous
        pdfView.document = pdfDocument

        pdfView.maxScaleFactor = 4.0
        pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit        
    }
}

Заранее спасибо (за то, что, вероятно, смешно простой вопрос!)

1 Ответ

1 голос
/ 21 марта 2019

К сожалению, нет экспортируемого API для установки PDFView желаемого отскока поведения.

Сказав это, вы можете (безопасно) использовать PDFView подробности реализации, чтобы разобраться с ней сейчас:

extension PDFView {

    /// Disables the PDFView default bouncing behavior.
    func disableBouncing() {
        for subview in subviews {
            if let scrollView = subview as? UIScrollView {
                scrollView.bounces = false
                return
            }
        }
        print("PDFView.disableBouncing: FAILED!")
    }
}

и затем используйте это в своем коде:

pdfView.disableBouncing()

Протест . Помните, что такое решение может сломаться в будущих версиях iOS. Тем не менее, будьте уверены, что ваше приложение не будет зависать в результате (вы только не будете вообще отключать подпрыгивающее поведение).

...