我正在尝试通过以下方式分享带有文本的图像UIActivityViewController
。如果我这样做:
let activityVC = UIActivityViewController(activityItems: [text, image], applicationActivities: nil)
self.presentViewController(activityVC, animated: true, completion: nil)
一切正常。问题是我只想与某些活动类型共享图像。也就是说,当用户分享到 Facebook 时,我不想拥有图像,但我所做的其他一切都是如此。我的问题是这个愚蠢的方法从未被调用:
optional func activityViewController(_ activityViewController: UIActivityViewController,
thumbnailImageForActivityType activityType: String?,
suggestedSize size: CGSize) -> UIImage?
这应该是因为它定义在UIActivityItemSource
协议。有什么解决办法吗?
所以我相信在这里已经取得了一些进展。如果您传递多个值,则变为我们的self
实例化时UIActivityViewController
您可以在中返回多个值itemForActivityType
委托方法。所以如果我这样做:
let activityVC = UIActivityViewController(activityItems: [self, self], applicationActivities: nil)
我可以返回不同的值,如下所示:
func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
if activityType == UIActivityTypePostToFacebook {
return ["hello", "world"]
}
else {
return ["goodnight", "moon"]
}
}
但是,似乎只能返回两个相同类型的值。
现在我的新问题是,如何返回图像和文本?狩猎仍在继续……