PDFview scrollview zoom - PullRequest
       34

PDFview scrollview zoom

2 голосов
/ 14 октября 2019

Я работаю в проекте редактирования PDF, в котором я должен добавить подпись в pdfview, а после этого нужно изменить размер и удалить эту подпись. Теперь для этого я добавляю один вид прокрутки с UIView поверх pdfview с прозрачной альфа-версией и добавляю вид изображения к этому UIView, но у меня была проблема с масштабированием. Как я могу получить, сколько зум pdfview масштабирования, когда пользователь щепотку масштабирования. Я хочу найти масштабируемый контент-индекс pdfview, чтобы я мог установить контент-набор моего собственного прокрутки.

попытаться получить масштабный коэффициент pdfview при увеличении pdfview с помощью:

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

Но все же я не могу найтиКак я могу увеличить и установить свой UIScrollview как pdfview zoom.

1 Ответ

0 голосов
/ 17 октября 2019

У вашего PDFView есть свойство под названием scaleFactorForSizeToFit, которое представляет собой масштабный коэффициент, который PDFKits autoScales будет использовать для масштабирования текущего документа и макета.

Это означает, что если вы используете autoScales свойство, когда вы установите свой PDF, вы сможете рассчитать сумму для масштабирования вашего UIScrollview.

Вот пример того, что я имею в виду для некоторого дополнительного контекста:

//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
}

Что-токак это должно решить вашу проблему.

...