我正在尝试移动使用webview的项目向pdfView显示一些pdf,以利用最新的PDFKit功能。
在webview中,当缩小文档时,总是缩放以填充屏幕。基本上你不能缩小它弹回来填满屏幕的页面。
现在有了pdfView,我可以通过捏合缩小它看起来不太好,不需要让pdf页面小于屏幕......
一旦将手指从屏幕上松开,有没有办法激活自动缩放。我知道有手势功能,但我不熟悉它的使用。
答案 0 :(得分:10)
只是为了确认接受的答案是正确答案,还要强调代码需要使用的位置(如答案作者的评论中所述)。即在设置pdf文档后必须使用代码:
pdfView.document = pdfDocument
pdfView.autoScales = true
pdfView.maxScaleFactor = 4.0
pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit
答案 1 :(得分:8)
回答我自己的问题,实际上很容易......
pdfView.autoScales = true
pdfView.maxScaleFactor = 4.0
pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit
答案 2 :(得分:1)
设置文档属性后,此解决方案将自动调整PDFView
。只需使用NoZoomOutPDFView
代替PDFView
作为显示PDFDocument
的视图。
import Foundation
import PDFKit
final class NoZoomOutPDFView: PDFView {
init() {
super.init(frame: .zero)
NotificationCenter
.default
.addObserver(
self,
selector: #selector(update),
name: .PDFViewDocumentChanged,
object: nil
)
}
deinit {
// If your app targets iOS 9.0 and later the following line can be omitted
NotificationCenter.default.removeObserver(self)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
@objc private func update() {
// PDF can be zoomed in but not zoomed out
DispatchQueue.main.async {
self.autoScales = true
self.maxScaleFactor = 4.0
self.minScaleFactor = self.scaleFactorForSizeToFit
}
}
}