以下代码旨在根据所选的不同平台共享不同的文本和不同的图像(UIImage
和NSData
)。问题是没有图像从 activityImageShare()
传递到 UIActivityViewController
。
问题:
What’s could be wrong here exactly?
How can I correct the code below to ensure that
activityImageShare()
shares the images, and ensure they are picked up as anactivityType
byUIActivityViewController
?
代码:
1 - 四张图片,三张 UIImage
和一张 NSData
。
var myImage1: UIImage!
var myImage2: UIImage!
var myImage3: NSData!
var myImage4: UIImage!
2 - 根据选择的平台定义图像以传递给 UIActivityViewController
。
class activityImageShare: NSObject, UIActivityItemSource {
@objc func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return ""
}
@objc func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
switch activityType {
case UIActivityTypePostToFacebook:
return myImage1
case UIActivityTypePostToTwitter:
return myImage2
case UIActivityTypePostToWeibo:
return myImage3
default:
return myImage4
}
}
}
3 - 根据选择的平台定义文本以传递给 UIActivityViewController
。
class activityTextShare: NSObject, UIActivityItemSource {
@objc func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return ""
}
@objc func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
switch activityType {
case UIActivityTypePostToFacebook:
return "This is my text 1."
case UIActivityTypePostToTwitter:
return "This is my text 2."
case UIActivityTypePostToWeibo:
return "This is my text 3."
default:
return "This is my text 4."
}
}
}
4 - 根据 activityTextShare()
和 activityImageShare()
中定义的文本和图像呈现 UIActivityViewController
。
func myShareActivity() {
let activity = UIActivityViewController(activityItems: [activityTextShare(), activityImageShare()], applicationActivities: nil)
self.presentViewController(activity, animated: true, completion: nil)
}
最佳答案
尝试在 activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController)
中返回占位符图像而不是 ""
关于ios - UIActivityViewController 不共享图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45198378/