如何判断PDFDocument是否已加载到PDFView

时间:2019-05-20 10:43:05

标签: ios objective-c pdfkit pdfview pdfdocument

我在App文档文件夹中存储了一个PDF文件。

我有一个PDFView作为我的视图控制器视图的子视图。我可以从文件中加载PDF并显示它。没问题。

但是,取决于PDF的大小,PDFView可能需要一段时间才能加载。

我正在使用Objective-C。

这里是我的代码:

- (void)loadDocument {

    _pdfView.document = [_fileFromThirdParty pdfDocument];

}

定义_pdfView的位置

@property (strong, nonatomic) IBOutlet PDFView *pdfView;

当文档已加载到视图中时,我想做些事情。

因此,我们在PDFView中定义了PDFDocument。检查这两个对象表明在页面更改等情况下我们已经发布了通知。但是,当文档成功加载到视图中时,我什么也找不到。

我希望有一个像这样的委托方法:

- (void)pdfView:(PDFView *)pdfView pdfHasLoaded:(BOOL)pdfHasLoaded {

    // Great - I can do something...!

}

我想向窗口添加暗视图(以显示活动),并在PDF加载后将其删除。我已经击败了Google和SO。没什么那么明显的。

需要明确的是,我不是从服务器上的URL中提取它。这只是从文档包中加载。

这里有任何想法

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

func loadPDF() {

        showLoader()
        DispatchQueue.global(qos: .background).async {

            if let urlPDF = URL(string: "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf") {

                let document = PDFDocument(url: urlPDF)
                DispatchQueue.main.async(execute: {

                    self.pdfView.document = document
                    dismissLoader()
                })
            }
        }
    }