4

当您使用 NSURL 在 UIActivityViewController 中附加链接时,我试图弄清楚是什么设置了回形针下的默认缩略图(而不是浮雕的 Safari 图标)。我觉得我已经看到诸如 google 和 iTunes 商店等网站将这些缩略图设置为有用的图像。我觉得浮雕的 safari 图标太模糊,用户不知道他/她发送的是什么链接。

它可能是该链接的 html 标头中的内容吗?

谢谢!

模糊的 Safari 图标

4

2 回答 2

3

我最近不得不解密所有UIActivityViewController文档。您可能不想在盲目的希望中包含 a UIImageNSURL它会被用作缩略图。据我了解,您无法确定UIActivity该图像将做什么,它可能会发布该图像而不是 URL。

在您的 activityItems 数组参数中initWithActivityItems:applicationActivities:,而不是NSURL,传递您创建的符合UIActivityItemSource协议的对象。您可以让任何控制器打开UIActivityViewController符合此协议的对象,例如,在这种情况下,您的 activityItems 参数将为@[self].

除了实现 2 个必需的方法activityViewControllerPlaceholderItem:并且activityViewController:itemForActivityType:都只返回您的NSURL,还实现这个以返回您喜欢的任何缩略图:

- (UIImage *)activityViewController:(UIActivityViewController *)activityViewController thumbnailImageForActivityType:(NSString *)activityType suggestedSize:(CGSize)size;

请注意文档中没有真正说明的一件事,如果您确实需要在您的 activityItems 数组中有多个对象并且正在更新它以使用UIActivityItemSource(或UIActivityItemProvider)对象,那么它需要一个单独的此类对象来返回每个原始对象原始数组中的数据对象。例如,如果您的数据项是 anNSURL和 a ,UIImage则使一个UIActivityItemSource返回 the NSURL,另一个返回UIImage. 拥有一个UIActivityItemSource返回一个数组NSURLUIImage与您的原始 activityItems 数组类似的数组是行不通的。

于 2014-05-06T23:17:49.360 回答
0

您是否尝试过将派生的 UIActivity 对象的 activityImage 属性设置为要在回形针下显示的图像?

" 对于 UIActivityTypePostToTwitter:对象将提供的内容发布到用户的 Twitter 提要。使用此服务时,您可以提供 NSString、NSAttributedString、UIImage、AVAsset 和 NSURL 对象作为活动项目的数据。您还可以指定 NSURL 对象的内容使用资产库计划。”

请注意您可以包含在传递到 UIActivityViewController 的数组中的 UIImage 对象。此链接描述了有关 activityImage 属性的更多信息,http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIActivity_Class/Reference/Reference.html#//apple_ref/occ/instm/UIActivity/activityType

凯文

于 2013-03-16T20:18:03.753 回答