从检索到的 firebase 数据在 TableView 上快速设置图像

Posted

技术标签:

【中文标题】从检索到的 firebase 数据在 TableView 上快速设置图像【英文标题】:Swift set image on TableView from retrieved firebase data 【发布时间】:2017-08-11 20:24:16 【问题描述】:

所以我构造检索数据的方式是;

结构框架图片 让 imagedB :数据! 让 pricedB :字符串!

我已成功检索数据,但我不知道如何在 tableView 上设置图像?我已经设法用标签弄清楚了......但不是用图片?

这是表格中单元格的代码;

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 


    let cell: RowCellTableView = myTableView.dequeueReusableCell(withIdentifier: "cell") as! RowCellTableView

     // sets label
    cell.priceView.text = framePics[indexPath.row].pricedB

    // set image on UIimageView???
    --- I dont know how to add this? I need somehow to get the list of only the images???  I believe if I had the array variable like; imageFiles[] I could have done;
imageFiles[indexPath.row].getDataInBackground... But in my case I use struct so how am I supposed to do this in this case?

RowCellTableView 只包含;

  @IBOutlet weak var imageView: UIImageView!
  @IBOutlet weak var priceView: UILabel!

【问题讨论】:

【参考方案1】:

在你的结构中你有:

struct framePic  
   let imagedB : Data! 
   let pricedB : String! 

尝试像这样将 imagedB 转换为 UIImage:

var imageUIImage: UIImage = UIImage(data: imageData)

所以你的实现会是这样的:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 


    let cell: RowCellTableView = myTableView.dequeueReusableCell(withIdentifier: "cell") as! RowCellTableView

     // sets label
    cell.priceView.text = framePics[indexPath.row].pricedB

    // convert imageData to UIImage
    var imageUIImage: UIImage = UIImage(data: framePics[indexPath.row].imagedB)

    // apply image to UIImageView
    cell.imageView.image = imageUIImage

    return cell

【讨论】:

【参考方案2】:
cell.imageView.image = someImage

【讨论】:

实际上,由于您是从 Firebase 获取此数据,因此您不一定要拉取图像,而是拉取图像的 URL。如果您使用允许您将 URL 传递给 imageView 的框架,您可以这样做,并且只传递 URL 是的,我获取了一个 URL,那么什么样的框架支持这个呢?输入 URL 并获取图像?嗯... @StrawHat 这肯定对你有用。它是一个很棒的 ios 库列表,您可以通过 Cocoapods 轻松地将其集成到您的项目中。 github.com/vsouza/awesome-ios#image @StrawHat 我会推荐 SDWebImage,但是看看哪个套件最适合您 你能具体告诉我一个吗?我在数据库中保存一个 URL 并将图像保存在存储中......

以上是关于从检索到的 firebase 数据在 TableView 上快速设置图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vue js 中显示从 firebase 检索到的标题标签 <h1> </h1> 的数据?

Android - 持久化从 Firebase 检索到的数据

Firebase - iOS Swift:使用从两个单独的子节点检索到的数据加载表格视图单元格

试图快速删除从firebase检索到的数组中的重复值

Firebase/Android:将检索到的值从 Firebase 添加到 arraylist 会返回空指针异常

从 firebase 检索数据并将其显示在可扩展的 recyclerview 中