Как преобразовать URL-изображения в UIImages в Swift5 и добавить в массив

У меня есть вызов API GET в коде Swift 5 для получения изображений, я получаю URL-адрес изображений, мне нужно изменить URL-адрес на UIImage, чтобы добавить URL-адреса в массив изображений = UIImage, данные URL-адреса есть, но это не добавляя к массиву изображений. моя задача - поместить все изображения данных в представление коллекции, если есть другой способ, помогите мне, спасибо.

--->. пусть arrayImages = UIImages

 guard let data = response?.data(using: .utf8) else   {
            return
        }
        do {
            let jsonObj = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as! [String: Any]
            if jsonObj["error"] as! Bool == false {
                print("galleryResponse/\(jsonObj)")
                let jsonResponse = jsonObj["response"] as! [[String: Any]]

                for i in 0...jsonResponse.count-1 {
                    let strGalleryImage = jsonResponse[i]["Gallery_Full"] as? String

                    if let imgurl = strGalleryImage {

                        self.userImageString1 = "\(USER_IMAGE_BASE_URL)\(imgurl)"

                    }
                    var imageString1: String?
                    var url1: URL!
                    imageString1 = self.userImageString1


                    if let imageUrlString1 = imageString1 {
                        url1 = URL(string: imageUrlString1)

                        DispatchQueue.global().async { [weak self] in
                            if let data = try? Data(contentsOf: url1!){
                                 if  let imagedata = UIImage(data: data){

                                    print("YES_IMG")

                                    if data != nil {

                                         DispatchQueue.main.async {
                                            print("append_IMG")
                                        self!.arrimages.append(imagedata)


                                        }
                                    }
                                }


                            }


                        }


                    }


                //}
                }
            }
        } catch {
            print("Unable_to_load_data:/\(error)")
        }

            })


    }

person Vishav    schedule 06.07.2019    source источник


Ответы (1)


Вы можете использовать модуль AlamofireImage для преобразования URL-адреса изображения в изображение.

Во-первых, вам необходимо установить файл модуля pod 'AlamofireImage'. Затем импортируйте AlamofireImage в свой ViewController.

Вот как это реализовать.

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "YourCollectionViewCellIdentifier", for: indexPath) as! YourCollectionViewCell
    Alamofire.request("your image URL in String formate").responseImage { response in
        debugPrint(response)
        debugPrint(response.result)
        if let image = response.result.value {
            cell.YourImage.image = image
        }
    }
    return cell
}
person Vinu Jacob    schedule 18.07.2019