ios - PDFKit - 使用 pageViewController 的 PDFView - 滑动到下一页时页面呈现缓慢

标签 ios swift performance pdfkit

我有一个设置为使用 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 都会出现这个问题。

感谢您的帮助

最佳答案

我认为这是由于您的 PDF 的高分辨率和 PDFView 呈现 PDF 的方式所致。您有关于您的 PDF 的更多信息吗?

您可以尝试使用图片较少的 PDF 吗?它应该渲染得很好。如果是这样,则不是您的代码有问题,而是将其显示和呈现到 View 所需的资源。

更新

您可以尝试在没有 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)

它的行为是否不同?我注意到选项 usePageViewController 可以更快地加载大型 PDF 文档。实现时需要考虑的事项。

希望对你有帮助

关于ios - PDFKit - 使用 pageViewController 的 PDFView - 滑动到下一页时页面呈现缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49335737/

相关文章:

ios - UILabel 中的多行文本

ios - 允许编辑 UIImagePickerViewController 无法选择 2 个不同的图像

ios - 在 UINavigationController 中添加一个 UISegmentedControl 作为 titleView

iOS10 UIImageWriteToSavedPhotosAlbum TCC__CRASHING_DUE_TO_PRIVACY_VIOLATION

tableview - Swift 中基于 View 的 NSTableView - 如何

performance - 网站性能衡量

silverlight - UseLayoutRounding = true时的性能影响

ios - 我正在使用核心数据,我的 bool 值被读取为数字

xcode - xcode 6 beta 7 中大量的警告

performance - if/else条件和模板匹配条件之间的区别