Как представить одностраничный 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)
}
}
}