1

我正在使用 QLPreviewController 快速显示 PDF 文件和图像。在控制器上传内容之前,这些秒内会显示一个空白屏幕。我尝试添加活动指示器。它开始动画,但不显示。

4

1 回答 1

0

我有同样的问题,所以我想我会分享一个可能的解决方案。

您的主线程很可能被阻塞,从而阻止了 QLPreviewController 的加载。您可以考虑将数据加载到另一个线程中,如下所示:

dispatch_queue_t getData = dispatch_queue_create("com.myDomain.appName", NULL);

dispatch_async(getData, ^{
    //get some data

});

您的主线程现在应该立即推送 QLPreviewController,它将在重试获取 _previewItemUrl 处的数据时显示自己的活动指示器。对于长时间运行的任务,此操作可能会超时:

等待来自 com.apple.quicklook.quicklookd 的栅栏屏障超时

在这种情况下,使用 performSelectorInBackground:withObject:,并在方法结束时发布它已完成的通知。注册您的类以接收通知,并通过 @selector 推送 previewController。

于 2013-06-21T21:47:35.570 回答