pdfView缩小缩小

时间:2017-11-13 18:08:09

标签: ios zooming pdfkit pdfview

我正在尝试移动使用webview的项目向pdfView显示一些pdf,以利用最新的PDFKit功能。

在webview中,当缩小文档时,

总是缩放以填充屏幕。基本上你不能缩小它弹回来填满屏幕的页面。

现在有了pdfView,我可以通过捏合缩小它看起来不太好,不需要让pdf页面小于屏幕......

一旦将手指从屏幕上松开,有没有办法激活自动缩放。我知道有手势功能,但我不熟悉它的使用。

3 个答案:

答案 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
        }
    }
}