gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:45:15 27 4
gpt4 key购买 nike

我在应用程序文档文件夹中存储了一个 PDF 文件。

我有一个 PDFView 作为我的 View Controller View 的 subview 。我可以从文件中加载 PDF 并显示它。没问题。

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

我正在使用 Objective-C。

这是我的代码:

- (void)loadDocument {

_pdfView.document = [_fileFromThirdParty pdfDocument];

}

_pdfView 的定义位置:

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

我想在文档加载到 View 中时执行一些操作。

因此,我们在 PDFView 中定义了 PDFDocument。检查这两个对象表明我们在页面更改等时发布了通知。但是当文档成功加载到 View 中时我找不到任何触发的东西。

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

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

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

}

我想向窗口添加深色 View (以显示事件),并在 PDF 加载后将其删除。我已经打败了谷歌和SO。没有什么那么明显。

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

这里有任何想法。

最佳答案

你可以这样做:

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()
})
}
}
}

关于ios - 如何判断 PDFDocument 是否已加载到 PDFView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56219261/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com