Правильный метод для итерации и загрузки изображений и заголовка из массива (image_url) в ViewController в Swift - PullRequest
0 голосов
/ 03 ноября 2019

Я использовал CollectionView с ImageView в ячейке прототипа. Я получаю результат API (title и image_url) и хотел бы отобразить изображение и заголовок в виде коллекции через массив для получения заголовка и image_url.

Можно ли извлечь image_url и отобразить изображение вCollectionView?

Я использовал SwiftyJSON для создания массива, и я могу получить результат API (включая title и image_url) в массиве (могу распечатать результат). Но я не могу показать это в представлении коллекции.

1 Ответ

0 голосов
/ 03 ноября 2019

Я публикую пример кода для вашей проблемы, который может вам помочь.

// Массив, который вы извлекаете из своего API

let titleAndImageArray = []()

// CollectionViewDataSourceMethod

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

    return titleAndImageArray.count
}



func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
 let cell:YourCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! YourCollectionViewCell
 let labelTitle = titleAndImageArray[indexPath.row].title
 let musicImageUrlString = titleAndImageArray[indexPath.row].image_url
 cell.yourLabelOutletName.text = labelTitle
 loadImage(indexPath: indexPath, cell: cell, urlString:musicImageUrlString)
    }

* Я создал функцию loadImage для получения изображения с URL-адреса, который использует библиотеку SDWebImage, которая является загрузчиком асинхронных изображений SDWebImage *

  func loadImage(indexPath:IndexPath,cell:YourCollectionViewCell,urlString:String){
    cell.yourImageViewOutletName.sd_setImage(with: URL(string: urlString), placeholderImage: UIImage(named: "App-Default"),options: SDWebImageOptions(rawValue: 0), completed: { (image, error, cacheType, imageURL) in

    })
}
...