すべてのUIActivityTypesのテキストを取得するには、次のコードを使用しています。UIActivityViewControllerはFB、Twitter、Mailのみの画像を共有しますが、メッセージは表示されません
@objc func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return ""
}
@objc func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
if activityType == UIActivityTypeMessage {
return "String for message"
} else if activityType == UIActivityTypeMail {
return "String for mail"
} else if activityType == UIActivityTypePostToTwitter {
return "String for twitter"
} else if activityType == UIActivityTypePostToFacebook {
return "String for facebook"
}
return nil
}
func activityViewController(activityViewController: UIActivityViewController, subjectForActivityType activityType: String?) -> String {
if activityType == UIActivityTypeMessage {
return "Subject for message"
} else if activityType == UIActivityTypeMail {
return "Subject for mail"
} else if activityType == UIActivityTypePostToTwitter {
return "Subject for twitter"
} else if activityType == UIActivityTypePostToFacebook {
return "Subject for facebook"
}
return ""
}
}
ここで興味深い部分が発生します。 URLからobjectsToShare配列に画像を追加します。画像がすべて表示されるようにするとうまくいくでしょうが、私の問題はUIActivityTypeMessage
の画像を表示したくないということです。それにはテキストだけが含まれ、画像は含まれていないはずです。これどうやってするの?異なるActivityItemごとに異なる内容を設定するための
// Load image to share
let articleURL = URLBuilder.sharedInstance.addOnlyHttps((promo?.imageUrl)!)
KingfisherManager.sharedManager.cache.retrieveImageForKey(articleURL, options: nil) { (image, _) ->() in
if image != nil {
objectsToShare.append(image!)
self.openShareViewController(objectsToShare, sender: sender)
} else {
KingfisherManager.sharedManager.downloader.downloadImageWithURL(NSURL(string: articleURL)!, progressBlock: nil, completionHandler: { (image, error, imageURL, originalData) in
if image != nil {
KingfisherManager.sharedManager.cache.storeImage(image!, forKey: articleURL)
objectsToShare.append(image!)
self.openShareViewController(objectsToShare, sender: sender)
}
})
}
}
私はいくつかの説明が必要です。あなたはUIActivityViewcontrollerを通してイメージとテキストを共有する必要があります。 **例外** UIActivityTypeMessageはimage.right以外のテキストしか持たないはずですか? – Gokul
@Gokulvividは良い先生:Dは実際に私が必要なものです – SoundShock
私の答えをチェックして、あなたの必要をいっぱいにするかもしれません。 – Gokul