gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:59:18 25 4
gpt4 key购买 nike

是否可以在 for 循环内为我的 ImageView 设置图像?我目前正在从 firebase 数据库获取所有图像下载网址,并将它们保存在 [[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 或者我做错了什么?

最佳答案

你需要

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]()

关于ios - FirebaseUI 和 SDWebImage 在 CollectionViewControllerCell 的 for 循环中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54846353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com