当 autoScales 设置为 true 时,iOS PDFView 会导致底层断言

问题描述

我正在开发一个需要显示相当大的 PDF 文件的应用程序。我为此使用 PDFKits PDFView,然后将其包装在 UIViewRepresentable 中。问题是在设置 PDFView.autoScales = true 时,我在启动时出错。该应用程序仍然有效,autoScales 功能也是如此,但我仍然想修复该错误。我还应该提到,在 iOS 开发方面,我是一个完整的初学者。

这是我对 makeUIView 的实现:

func makeUIView(context: UIViewRepresentableContext<PDFKitRepresentedView>) -> PDFKitRepresentedView.UIViewType {
    let pdfView = PDFView()
    pdfView.autoScales = true
    pdfView.pageBreakMargins.top = 0.0
    pdfView.pageBreakMargins.bottom = 0.0
    pdfView.pageShadowsEnabled = false
    pdfView.document = PDFDocument(url: self.url)        
    return pdfView
}

这是错误:

[Assert] -[UIScrollView _clampedZoomScale:allowRubberbanding:]: Must be called with non-zero scale
[Unknown process name] CGAffineTransformInvert: singular matrix.

它们似乎在 PDFView 被初始化时被打印出来。任何想法可能是什么问题?

解决方法

我遇到了同样的问题,我现在已经解决了。

您的 pdfView 应先设置框架。您可以提供任何值。

let pdfView = PDFView(frame: CGRect(x: 0,y: 0,width: 100,height: 100))   
self.view.addSubview(pdfView)

现在OK了,然后解决错误

,

我最终忽略了它。似乎工作正常。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...