在TableView上设置从Firebase检索到的图像的Swift代码。

25 浏览
0 Comments

在TableView上设置从Firebase检索到的图像的Swift代码。

所以我整理我检索到的数据的方式是这样的;

结构体framePic

{

let imagedB : Data!

let pricedB : String!

}

我已经成功检索到了数据,但是我不知道如何在tableView上设置图像?我已经在标签上弄明白了...但是图片呢?

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

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

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

// 设置标签

cell.priceView.text = framePics[indexPath.row].pricedB

// 在UIImageView上设置图像???

--- 我不知道如何添加这个?我需要以某种方式获取仅图像的列表???我相信如果我有像这样的数组变量; imageFiles[] 我可以做到; imageFiles[indexPath.row].getDataInBackground... 但在我的情况下,我使用结构体,那么在这种情况下我应该怎么做?

RowCellTableView只包含;

@IBOutlet weak var imageView: UIImageView!

@IBOutlet weak var priceView: UILabel!

0
0 Comments

在这个问题中,出现的原因是在结构体中使用了一个imagedB属性,它的类型是Data。然而,在将这个Data类型转换为UIImage类型时出现了问题。解决方法是使用UIImage的初始化方法将imagedB转换为UIImage类型,然后将转换后的UIImage赋值给UIImageView的image属性。

具体的解决方法如下所示:

在结构体中,将imagedB属性的类型改为Data类型,并在tableView的cellForRow方法中进行如下更改:

1. 将framePics[indexPath.row].imagedB转换为UIImage类型,使用UIImage的初始化方法:

var imageUIImage: UIImage = UIImage(data: framePics[indexPath.row].imagedB)

2. 将转换后的UIImage赋值给cell的imageView的image属性:

cell.imageView.image = imageUIImage

实现以上更改后,问题将得到解决。

0
0 Comments

问题的原因是,从Firebase中获取的数据实际上是图像的URL,而不是图像本身。所以需要一个框架来处理这个URL并将其设置为TableView中的图像。

解决方法是使用一个iOS库,通过Cocoapods轻松集成到项目中。推荐使用SDWebImage库,它可以根据URL来设置ImageView中的图像。

另外,还可以通过创建一个UIImageView的扩展来在不使用外部库的情况下处理图像的下载和设置。以下是一个示例链接:stackoverflow.com/questions/41132122/…

通过使用相应的iOS库或通过创建UIImageView的扩展,可以从Firebase中检索到图像的URL,并将其设置为TableView中的图像。

0