簡體   English   中英

PDFKit-使用pageViewController的PDFView-滑動到下一頁時頁面呈現緩慢

[英]PDFKit - PDFView using pageViewController - page rendering slow when swiping to next page

我有一個設置為使用pageViewController的PDFView:

    let pdfView = PDFView()
    let pdfDoc = PDFDocument(url: Bundle.main.url(forResource: "test", withExtension: "pdf")!)
    pdfView.document = pdfDoc
    pdfView.autoScales = true
    pdfView.displayDirection = .horizontal
    pdfView.usePageViewController(true, withViewOptions: [:])

每當我滑動到下一頁時,都會說下一頁模糊了半秒,然后才清晰呈現。 真煩人。 我可以以某種方式預加載頁面嗎? 我在文檔中找不到任何屬性/方法。

(有趣的是,當我處於全屏模式時, MacOS上的Preview會出現完全相同的問題(從此以后,我擁有的每台Mac上都會出現此問題))

它不依賴於pdf(文件)大小。 我嘗試的每個PDF都會出現問題。

謝謝你的幫助

請確保也根據您的要求添加.maxScaleFactor .minScaleFactor的值,並查看加載時間是否有所不同。 例如

.maxScaleFactor = 4.0;
.minScaleFactor = self.scaleFactorForSizeToFit;

我認為這是由於PDF的高分辨率以及PDFView呈現PDF的方式。 您在PDF上有更多信息嗎?

您可以嘗試使用圖像質量較輕的PDF嗎? 它應該很好。 如果是這樣,不是您的代碼有問題,而是顯示和呈現給視圖所需的資源。

更新

您可以嘗試在沒有PageViewController的情況下使用PDFView並查看其行為。 您可以這樣做:

pdfView = PDFView(frame: view.frame)
pdfView.backgroundColor = UIColor.white

var documentName: String = "test"

if let documentURL = Bundle.main.url(forResource: documentName, withExtension: "pdf") {
    if let document = PDFDocument(url: documentURL) {
        pdfView.autoScales = true
        pdfView.displayDirection = .horizontal
        pdfView.displayMode = .singlePageContinuous
        pdfView.document = document
    }
}

self.view.addSubview(pdfView)

它的行為是否有所不同? 我注意到,對於大型PDF文檔, usePageViewController選項可以usePageViewController加載文檔。 實施時要考慮的事項。

我希望這有幫助

您是否嘗試更改了interpolationQuality選項?

繪制到PDFView上下文中的圖像的插值質量。

可能的值為

  • 沒有

也許您可以嘗試類似

pdfView.interpolationQuality = .low

要么

pdfView.interpolationQuality = .none

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM