如何在PDFView中呈现单页pdf文档,使文档居中完整呈现?
How to present a single page pdf document in PDFView so that the document is centred and fully presented?
我有一个应用程序可以拍摄文档照片,然后在新的 UIViewController 的 PDFView 中显示为 pdf。我遇到的问题是,当显示 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 文档当前默认显示的方式 - 经常缩放:
这就是我希望文档默认显示的方式 - 文档的完整大纲请参阅:
我按以下方式从代码创建视图并且它有效(左右侧与超级视图左右对齐,高度缩放以适合)
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 = ([=10=] as? UIScrollView) else { return }
scrollView.setContentOffset(.zero, animated: false)
}
}
}
我有一个应用程序可以拍摄文档照片,然后在新的 UIViewController 的 PDFView 中显示为 pdf。我遇到的问题是,当显示 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 文档当前默认显示的方式 - 经常缩放:
这就是我希望文档默认显示的方式 - 文档的完整大纲请参阅:
我按以下方式从代码创建视图并且它有效(左右侧与超级视图左右对齐,高度缩放以适合)
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 = ([=10=] as? UIScrollView) else { return }
scrollView.setContentOffset(.zero, animated: false)
}
}
}