我有一张从相机拍摄并保存到 /tmp 文件夹的图片。
当我将这张图片添加到 UIActivityViewController 的 activityItems 中,并且选择分享到 Twitter 或 Facebook,我需要等待长达 20 秒才能看到分享对话框。
请注意,我指的是实际的“发布”对话框,而不是生成它的本地分享弹出窗口。
当我从照片应用程序分享相同的图像时,它会立即出现。
起初,我认为照片应用程序正在调整图像大小,因为较小的图像出现得更快,但后来我发现,当我直接使用 SLComposeViewController 将相同的图像分享到 Twitter 或 Facebook 时,它几乎可以立即出现。
假设这是我在代码中做错了什么,以下是导致缓慢对话框出现的原因:
这里是几乎即时起作用的方法:
当我将这张图片添加到 UIActivityViewController 的 activityItems 中,并且选择分享到 Twitter 或 Facebook,我需要等待长达 20 秒才能看到分享对话框。
请注意,我指的是实际的“发布”对话框,而不是生成它的本地分享弹出窗口。
当我从照片应用程序分享相同的图像时,它会立即出现。
起初,我认为照片应用程序正在调整图像大小,因为较小的图像出现得更快,但后来我发现,当我直接使用 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设备上我没有遇到过这个问题。
谢谢