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 共享图像和文本的主要内容,如果未能解决你的问题,请参考以下文章

无法使用社交框架在 iOS8 中设置联系人图像

Open vSwitch使用案例扩展实验

FD.io/VPP — L2 vSwitch

Open vSwitch流表应用实战

vSphere vSwitch网络属性配置详解

Open vSwitch系列之一 Open vSwitch诞生