FirebaseUI和SDWebImage在CollectionViewControllerCell中的for循环中显示图像

问题描述 投票:0回答:1

是否可以在for循环中为我的图像视图设置图像?我目前从firebase数据库获取所有图像下载URL,并将它们保存在[[String:Any]]类型的字典中

在我的CollectionViewControllerFile的cellforItemAt方法内部我正在调用这样的for循环:

   override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! MyImageCell

    for myurl in urlArray {
        print("Hier kommt myURL \(myurl)")
    let url = URL(string: myurl["url"] as! String)
        cell.imageView?.sd_setImage(with: url, completed: nil)
    }

    cell.myLabel?.text  = "test"

    return cell
}

但这样只会显示最后一张图像5次。

我创建了一个自定义单元格并在此处为它创建了一个类:

class MyImageCell: UICollectionViewCell {

@IBOutlet weak var imageView: UIImageView!

@IBOutlet weak var myLabel: UILabel!

}

我正在创建1节和每节5个项目。甚至可以在for循环中使用SDWebImage或者我做错了什么?

ios swift firebase uicollectionview sdwebimage
1个回答
0
投票

你需要

let item = urlArray[indexPath.row]       
let url = URL(string: item["url"] as! String)
cell.imageView?.sd_setImage(with: url, completed: nil)

每次调用cellForItemAt都会返回一个单元格,所以每当你最终将数组的最后一个url设置为imageView时,你也应该创建一个像

struct Root {
  let url:URL
  // add more properties 
}

然后创建一个像它的数组

var myArray = [Root]()
© www.soinside.com 2019 - 2024. All rights reserved.