2017-02-18 3 views
0

У меня есть табличное представление с пользовательскими ячейками, которые содержат изображение (user-avatar). я реализовал простое решение для cellForRowAt-функции сSwift: Загрузить изображения в UITable-View

  if let imgData = try? Data(contentsOf: imageUrl!), let img = UIImage(data: imgData) {     
       cell.profilePictureView.image = img 
      } 

Однако, это очень лага и у меня есть несколько вопросов:

-> Что хороший подход, чтобы установить изображения? так же, как ниже, или я должен загружать их как синхронно?

-> Каков наилучший подход для API-сервиса: нормально ли получить все изображения по отдельности (путем запроса api/images/userid для каждой строки) или лучше включить все изображения непосредственно на сервере, ответ (что список, например, 20 игроков, содержит атрибут изображения)

-> имеет смысл кешировать изображения? или это происходит автоматически? Какой хороший подход к этому?

+0

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

ответ

0

Вы должны сделать все «получение изображения» в фоновом потоке и вернуться к основному потоку для обновления интерфейса. Вы можете использовать 'sdwebimage'. Этот подкачка загружает изображение и получает его за вас (вам не о чем беспокоиться).