关于ios:PDFview滚动查看缩放

PDFview scrollview zoom

我正在pdf编辑项目中工作,因为我必须在pdfview中添加签名,然后需要调整大小并删除该签名。现在,为此,我在带有透明alpha的pdfview顶部添加一个带有UIView的滚动视图,并将图像视图添加到该UIView中,但是缩放存在问题。当用户捏缩放时,如何获得pdfview缩放率。我想找到pdfview的zoomcontentInset,所以我可以设置自己的scrollview的contentInset。

在使用:

1
2
3
@objc func pdfViewScaleChange(notification:NSNotification){
        print(self.pdfView.scaleFactor)
}

进行pdfview缩放时尝试获取pdfview比例因子,但是仍然找不到如何缩放并将UIScrollview设置为pdfview缩放。


您的PDFView具有一个名为scaleFactorForSizeToFit的属性,这是PDFKits autoScales用于缩放当前文档和布局的比例因子。

这意味着如果使用属性,当您设置您的pdf时,您将能够计算出缩放UIScrollview的量。

这是我在更多上下文中的意思的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//wherever you set your pdf (doesn't have to be viewDidAppear)
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    pdfView.document = PDFDocument(data: data)
    pdfView.autoScales = true

    //Add the observer here to detect when your pdf is zoomed in or out
    NotificationCenter.default.addObserver(self,
                                 selector: #selector(pdfPageWasZoomed),
                                     name: Notification.Name.PDFViewPageChanged,
                                               object: nil)
}

//wherever you want to zoom use this
func getScrollViewScaleFactor() -> CGFloat {
    return (pdfView.scaleFactor / pdfView.scaleFactorForSizeToFit)  
}

//Objc function which is called everytime the zoom changes
@objc private func pdfPageWasZoomed() {
    //Here use the function getScrollViewScaleFactor() to get a factor to scale in or out by
}

这样可以解决您的问题。