2

我正在开发一个需要显示相当大的 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 初始化时,它们似乎就会被打印出来。任何想法可能是什么问题?

4

2 回答 2

3

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

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

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

现在可以了,然后解决错误

于 2021-08-01T11:29:34.550 回答
0

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

于 2021-01-06T09:58:07.753 回答