Как отключить увеличение и уменьшение масштаба в pdfView? - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу получить только то, что получаю после

 pdfView.autoScales = true

без возможности изменения масштаба.

После помощи @carmine у ​​нас есть:

import UIKit
import PDFKit

class ViewController: UIViewController {

@IBOutlet weak var pdfView: PDFView!

override func viewDidLoad() {
    super.viewDidLoad()

    setPdfFile()
}

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    self.pdfView.autoScales = true
}

func setPdfFile() {
    if let path = Bundle.main.path(forResource: "Swift.org - Getting Started", ofType: "pdf") {
        let url = URL(fileURLWithPath: path)
        if let pdfDocument = PDFDocument(url: url) {
            pdfView.autoScales = true
            pdfView.displayMode = .singlePageContinuous
            pdfView.displayDirection = .vertical
            pdfView.document = pdfDocument

            pdfView.displaysPageBreaks = false

            pdfView.minScaleFactor = pdfView.scaleFactor
            pdfView.maxScaleFactor = pdfView.scaleFactorForSizeToFit
            }
        }
    }
}

Это дает такой результат: https://gfycat.com/briefpowerlessbug

Но если вы запустите без этих строк:

            pdfView.minScaleFactor = pdfView.scaleFactor
            pdfView.maxScaleFactor = pdfView.scaleFactorForSizeToFit

Вы получите нужный мне результат, но с увеличением: https://gfycat.com/presentconcretebunting

Я хочу отключить масштабирование и сделать ширину pdfView равной ширине pdf-файла.

1 Ответ

0 голосов
/ 22 февраля 2019

Используйте

 pdfView.minScaleFactor = pdfView.scaleFactor
 pdfView.maxScaleFactor = pdfView.scaleFactorForSizeToFit

И добавьте

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    self.pdfView.autoScales = true
}
...