IOS swift如何使用 UIActivityViewController 共享图像和文本
Posted
技术标签:
【中文标题】IOS swift如何使用 UIActivityViewController 共享图像和文本【英文标题】:IOS swift how can I share an image along with text using UIActivityViewController 【发布时间】:2017-01-04 22:35:44 【问题描述】:我有一个 TableView,它有一个 Text 响应和一个 imageView,我想共享它们。现在我知道如何共享文本响应,但是我不知道如何共享相应的图像。这是我的代码
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "HomePageTVC", for: indexPath) as! HomePageTVC
// Post Text
cell.post.text = Posts[indexPath.row]
// Image View
let strCellImageURL = self.profile_image_string[indexPath.row]
let imgURL: NSURL = NSURL(string: strCellImageURL)!
let request:NSURLRequest = NSURLRequest(url: imgURL as URL)
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let task = session.dataTask(with: request as URLRequest, completionHandler: (data, response, error) in
DispatchQueue.main.async(execute: () -> Void in
cell.profile_image.image = UIImage(data: data!)
)
);
task.resume()
这是我上面的 TableView,它在 tableviewCell 中显示文本和图像。我现在使用这段代码来分享点击的表格单元格的内容
@IBAction func Share_Action(_ sender: UIButton)
// How can I also share a image here ?
activityViewController = UIActivityViewController(activityItems: [Posts[sender.tag] as NSString], applicationActivities: nil)
present(activityViewController,animated: true,completion: nil)
如您所见,我可以使用 Post 文本,但现在 如何共享 TableCell 中的图像?对于文本,我可以通过使用 Posts[sender.tag] 来获得响应图像的 URL,我可以通过使用 profile_image_string[indexPath.row] 获得。 p>
【问题讨论】:
【参考方案1】:对于活动项目,您可以提供值数组,以便您可以添加另一个对象作为图像
@IBAction func Share_Action(_ sender: UIButton)
let image = profile_image_string[indexPath.row] as UIImage
activityViewController = UIActivityViewController(activityItems: [Posts[sender.tag] as NSString, image], applicationActivities: nil)
present(activityViewController,animated: true,completion: nil)
【讨论】:
哦,好的,我知道如何正确获取 indexPath 到目前为止我已经完成了让 indexPath : NSIndexPath 你可以像 let indexpath = NSIndexPath(row: 0, section: 0) let cell = tableView.cellForRow(at: indexpath as IndexPath) 这样的sender标签获取索引路径! HomePageTVC let image = cell.profile_image.image 注意:如果没有下载图片,那么您将无法从 imageView 获取图片。因此,为此,您也可以在此处执行下载逻辑。以上是关于IOS swift如何使用 UIActivityViewController 共享图像和文本的主要内容,如果未能解决你的问题,请参考以下文章