我正在使用 QLPreviewController 快速显示 PDF 文件和图像。在控制器上传内容之前,这些秒内会显示一个空白屏幕。我尝试添加活动指示器。它开始动画,但不显示。
问问题
876 次
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 回答