繁体   English   中英

共享UIImage到UIActivityViewController Twitter / Facebook显示对话非常慢

[英]Sharing UIImage to UIActivityViewController Twitter/Facebook very slow to show dialog

我有一张从相机中取出的图像并保存到/ tmp文件夹中。

当我将此图像添加到UIActivityViewController的activityItems,然后按下与Twitter或Facebook共享时,我必须等待最多20秒才能显示共享对话框。

请注意,我指的是为Twitter / Facebook显示的实际“发布”对话框,而不是生成它的本机共享弹出窗口。

当我从照片应用程序共享相同的图像时,它会立即显示。

起初我认为照片应用程序正在调整图像大小,因为较小的图像显得更快,但我发现当我使用SLComposeViewController直接将相同的图像分享到Twitter或Facebook时,它(几乎)立即出现。

假设我在代码中做错了,这就是导致冰冷的对话框出现的原因:

NSArray *items = @[@"foo", [UIImage imageWithContentsOfFile:@"valid path to test image"]];

UIActivityViewController *vc = [[UIActivityViewController alloc]
        initWithActivityItems:items applicationActivities:nil];
[self presentViewController:vc animated:YES completion:nil];

这几乎是立即起作用的:

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[controller setInitialText:@"foo"];
[controller addImage:[UIImage imageWithContentsOfFile:@"valid path to test image"]];
[self presentViewController:controller animated:YES completion:Nil];

为了它的价值,我也尝试排除其他共享类型(我读过去AirDrop引起的问题),以及包装块以确保我在主线程上执行。

我想我做错了什么?

如果我不是,并且这两个其他方法实际上正在调整图像大小,是否有一些我缺少的文档提供了关于调整大小的指导?

**编辑:额外的测试似乎表明这个问题是iOS8独有的,因为我没有在较旧的iOS7设备上体验过它。

谢谢

在共享对话框出现之前,我们已经看到了4-20秒的延迟!
我通过为Twitter和Facebook创建自定义UIActivity项来修复它,它只是在performActivity方法中调用SLComposeViewController

似乎更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM