Поэтому я использую следующий код, чтобы получить текст для всех типов 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
. Это нужно просто содержать текст и изображение. Как я могу это сделать?
// 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