Добрый день.
В настоящее время я использую Alamofire версии 4.5 и xcode версии 9.3.Я пытаюсь загрузить изображения из URLrequest с пользовательскими заголовками в коллекцию с изображением с файлового сервера, используя этот код
var imageRequest = URLRequest(url: URL(string: "myurl here ")!)
imageRequest.addValue(MyVariables.accountToken, forHTTPHeaderField: "accountToken")
imageRequest.addValue("header value 1", forHTTPHeaderField: "header field 1")
imageRequest.addValue("header value 2", forHTTPHeaderField: "header field 2")
imageRequest.addValue(imageurl from fileserver, forHTTPHeaderField: "file")
После добавления заголовков в URL-запрос я использую этот ответный образ alamofire, чтобы установить значение для изображения
Alamofire.request(imageURLRequest).responseImage { response in
if let image = response.result.value {
self.count += 1
print("image \(self.count )", image)
} else {
print("unable to load \(self.count)")
}
}
Проблема, с которой я сталкиваюсь, состоит в том, что не все изображения загружаются одновременно, хотя я уже зациклился в запросе alamofire с количеством URL-запросов, которые у меня есть.Другое дело, что когда я прокручиваю коллекцию, фотографии, загруженные из вызова alamofire, перемешиваются, чтобы не следовать indexpath.row.Кроме того, я также попытался добавить ответное изображение к своему ответному изображению alamofire и установить его на cell.imageView.image = self.imageArray[indexPath.row]
, но оно выходит за пределы.Когда я регистрирую ответ на изображение alamofire, он загружается только до индекса 7. Я попробовал другой подход, например добавление urlrequest в массив и загрузка его в ячейку представления коллекции через
cell.imageView.af_setImage(withURLRequest: imageURLRquest)
, но он загружает только первый элемент вмассив изображений.Извините за длинный вопрос, так как я пробовал большинство решений, которые я нашел до сих пор, но это не решает проблему, с которой я столкнулся сейчас.Пожалуйста, предоставьте предложения, чтобы это исправить.Заранее спасибо.
ОБНОВЛЕНИЕ:
Вот код источника данных из запроса alamofire.Возвращает 10 urlrequest, который добавляется к массиву
var imageRequest = URLRequest(url: URL(string: "myurl here ")!)
imageRequest.addValue(MyVariables.accountToken, forHTTPHeaderField: "accountToken")
imageRequest.addValue("header value 1", forHTTPHeaderField: "header field 1")
imageRequest.addValue("header value 2", forHTTPHeaderField: "header field 2")
imageRequest.addValue(imageurl from fileserver, forHTTPHeaderField: "file")
self.imageArray.append(imageRequest)
Это для cellForItemAt
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "BooksCell", for: indexPath) as! LibraryCollectionViewCell
cell.imageView.af_setImage(withURLRequest: self.imageArray[indexPath.row])
cell.bookName.text = self.booksObject[indexPath.row].object(forKey: "title") as! String
cell.cosmosRatingView.rating = self.booksObject[indexPath.row].object(forKey: "rating") as! Double
return cell
}