2015-11-02 2 views
4

Есть ли способ загрузить изображение с помощью AlamofireImage и получить какую-то обратную связь о ходе загрузки, используя мощность его Расширения UIImage, фильтры изображений и кеш изображения?Загрузка изображения с использованием AlamofireImage?

Я знаю, что может Откат к простому Alamofire.request + responseImage, но я хотел бы, чтобы держать вещи простыми и использовать UIImageView Extension в .

Спасибо!

+0

Используйте это: https://github.com/Alamofire/AlamofireImage –

+0

@LokeshDudhat вопрос связан с AlamofireImage. Я уже использую его, но я не могу найти способ отслеживать ход загрузки изображения ... – Sendoa

ответ

1

Существует не способ на данный момент, чтобы использовать AlamofireImage наряду с расширением UIImageView получать обновления прогресса при загрузке изображения , Причина, по которой он не был добавлен изначально, состоял в том, что, похоже, большинство пользователей не нуждались в такой функции. Мне бы хотелось обсудить больше, чтобы узнать, действительно ли это функция, которую мы хотели бы добавить в AlamofireImage в будущей версии.

Готовы ли вы открыть проблему, проходящую через ваш прецедент? Я хотел бы точно знать, как вы ожидаете, что это сработает, и почему вам действительно нужна отчетность о прогрессе.

+0

Большое спасибо за ваш ответ @cnoon! Я только что опубликовал проблему https://github.com/Alamofire/AlamofireImage/issues/48 ;-) – Sendoa

0

Использование Alamofire загрузки изображений с процессом

Загрузка файла ж/Прогресс

Alamofire.download(.GET, "url...", destination: destination) 
     .progress { bytesRead, totalBytesRead, totalBytesExpectedToRead in 
      print(totalBytesRead) 

      // This closure is NOT called on the main queue for performance 
      // reasons. To update your ui, dispatch to the main queue. 
      dispatch_async(dispatch_get_main_queue()) { 
       print("Total bytes read on main queue: \(totalBytesRead)") 
      } 
     } 
     .response { _, _, _, error in 
      if let error = error { 
       print("Failed with error: \(error)") 
      } else { 
       print("Downloaded file successfully") 
      } 
     } 
+0

Как я уже сказал в своем оригинальном посте, «« Я знаю, что могу вернуться к простому Alamofire.request + responseImage, но я », d хотел бы держать вещи простыми и использовать расширение UIImageView »*. Это делается для того, чтобы использовать кеширование и другие полезные функции. – Sendoa

1

Попробуйте это Swift 3.0.2:

let utilityQueue = DispatchQueue.global(qos: .utility) 
let url = "http://kingofwallpapers.com/code/code-006.jpg" 

    Alamofire.download(url) 
     .downloadProgress(queue: utilityQueue) { progress in 
      print("Download Progress: \(progress.fractionCompleted)") 
     } 
     .responseData { response in 
      print("Response is \(response)") 
      if let data = response.result.value { 
       let image = UIImage(data: data) 
      } 
    }