FirebaseUI & SDWebImage Отображение изображения в цикле for в CollectionViewControllerCell - PullRequest
0 голосов
/ 24 февраля 2019

Можно ли установить изображения для просмотра моего изображения внутри цикла for?В настоящее время я получаю все URL-адреса для загрузки изображений из базы данных Firebase и сохраняю их в Словаре типа [[String: Any]]

Внутри метода cellforItemAt моего CollectionViewControllerFile, который я в данный момент вызываю для цикла 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 элементов на раздел.Можно ли даже использовать SDWebImage внутри цикла for или что я делаю не так?

1 Ответ

0 голосов
/ 24 февраля 2019

Вам нужно

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

Каждый вызов cellForItemAt возвращает ячейку, поэтому каждый раз, когда вы, наконец, устанавливаете последний URL-адрес вашего массива для imageView, вы также должны создать модель, подобную

* 1006.*

затем создайте его массив, например

var myArray = [Root]()
...