iosswiftpdfkituiswipegesturerecognizersinglepage

ios PDFKit displaymode = singlepage only shows the first page of the pdf


I'm trying to display a pdf on ios via apples PDFKit library, and rather than use PDFDisplayMode.singlePageContinuous mode, I want to stop at page breaks so I'm trying to use PDFDisplayMode.singlePage. https://developer.apple.com/documentation/pdfkit/pdfdisplaymode

However, this mode seems to only display one page of the pdf which is quite useless. I've tried adding swipe handlers to the page but they aren't working either.

I've found sample applications and altered their code to test the pdfdisplaymode but get the same problem e.g. https://github.com/vipulshah2010/PDFKitDemo

How can I implement a one page at a time pdfviewer with pdfkit, that allows swiping between pages?!


Solution

  • A another simple way to do this is setting

    pdfView.usePageViewController(true) 
    

    This adds the swiping between pages for you and no need to set up your own gestures. See example below:

    override func viewDidLoad() {
        super.viewDidLoad()
    
        // Add PDFView to view controller.
        let pdfView = PDFView(frame: self.view.bounds)
        self.view.addSubview(pdfView)
    
        // Configure PDFView to be one page at a time swiping horizontally
        pdfView.autoScales = true
        pdfView.displayMode = .singlePage
        pdfView.displayDirection = .horizontal
        pdfView.usePageViewController(true)
    
        // load PDF
        let webUrl: URL! = URL(string: url)
        pdfView.document = PDFDocument(url: webUrl!)
    }