首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在UIActivityItemProvider活动期间显示进度指示符

在UIActivityItemProvider活动期间显示进度指示符
EN

Stack Overflow用户
提问于 2014-08-13 04:25:35
回答 1查看 968关注 0票数 6

我有一个UIActivityViewController,它允许用户共享他们创建的几种活动类型之一的图像(facebook、twitter、保存到相机卷、打印等等)。

由于我希望根据活动(高分辨率打印,twitter低分辨率)将图像保存/发送到不同的质量级别,所以我使用自定义的UIActivityItemProvider来提供图像。

渲染高分辨率版本需要一些时间,所以我想在它进行操作时显示一个活动指示器。事实上,苹果的医生们就是这么做的。

但我似乎找不出正确的地方把吊钩用来显示我的进度指示器.他们应该去哪里?

更新:- (id) activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType方法中尝试了以下操作:

代码语言:javascript
复制
[self performSelectorOnMainThread:@selector(startSpinnerWithMessage:) withObject:message waitUntilDone:YES];

self.shareImage = [self.delegate imageForActivityOfType:activityType]; // code that actually generates the image; takes a while.

[self performSelectorOnMainThread:@selector(endSpinner) withObject:nil waitUntilDone:YES];

...does不做这项工作。当我点击activity按钮时,UI会在生成图像时冻结,然后当它完成时,我会看到旋转器瞬间消失。

我认为endSpinner电话的定位是合理的.然而,startSpinner调用似乎需要到其他地方去。我不知道该怎么做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-13 14:55:07

好吧,原来我只是搞错了.

我把我的抓取图像从委托代码放在- (id) activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType方法从UIActivityItemSource协议.结果表明,该方法是在主线程上触发的。

相反,我在UIActivityItemProvider- (id) item方法中放置了相同的代码,它的工作原理就像一种魅力。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25278046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档