Как представить одностраничный PDF-документ в PDFView, чтобы документ был отцентрирован и полностью представлен?

У меня есть приложение, которое делает фотографию документа, а затем представляет его в формате PDF в PDFView в новом UIViewController. Проблема, с которой я сталкиваюсь, заключается в том, что при представлении документа в формате PDF он немного увеличивается, и PDFView по умолчанию не отображает полный контур документа. Как мне это сделать?

class ShowPDFViewController: UIViewController{

@IBOutlet weak var pdfPreview: PDFView!
var pdfDocument: PDFDocument!


    override func viewDidLoad() {
        super.viewDidLoad()

        // PRESENT PDF DOCUMENT JUST CREATED
        pdfPreview.document = pdfDocument
        pdfPreview.autoScales = true

    }
}

Вот как PDF-документ в настоящее время представлен по умолчанию - часто масштабируется:

Вот как я бы хотел, чтобы документ был представлен по умолчанию - см. Полный план документа:

3 ответа

Решение

Я создаю вид из кода следующим образом, и он работает (левая и правая сторона выровнены по левому и правому суперпредставлениям, а высота масштабируется, чтобы соответствовать)

var pdfView = PDFView(frame: view.frame)
pdfView.document = PDFDocument(url: Bundle.main.url(forResource: "doc"
    , withExtension: "pdf")!)

pdfView.displayMode = .singlePage
pdfView.autoScales = true

view.addSubview(pdfView)

У меня есть идея. Вы можете создать ScrollView, добавить PDFView к нему. положить их в контроллер. вы можете изменить ScrollView.contentOffset для ваших нужд

Исправить для pdfView.displayMode = .singlePageContinuous

          override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        DispatchQueue.main.async {
            self.pdfView.subviews.forEach {
                guard let scrollView = ($0 as? UIScrollView) else { return }
                scrollView.setContentOffset(.zero, animated: false)
            }
        }

    }
Другие вопросы по тегам