2016-06-20 2 views
0

У меня есть UIImageView расширение, которое загружает изображение с заданного url в фоновом режиме. Я использую его для получения изображений для UITableViewCell. После успешной загрузки я звоню self.setNeedsLayout(), но он не обновляет макет ячейки, так как этот метод обновляет макет только для подписок. Я пытался использовать self.superview.setNeedsLayout() или даже self.window.setNeedsLayout(). Он не работает, он говорит, что оба эти представления равны нулю. Есть ли у вас какие-либо идеи, как я могу обновить UITableViewCell макет из него childView? Мы говорим о generic UITableViewCell, я бы хотел, чтобы избежать создания нового класса, чтобы сделать макет работы в этом случае, я хотел бы использовать это расширение в других местах, где у меня только UIImageView не внутри таблицы. Можно ли это сделать простым расширением? Прямо сейчас у меня есть пользовательский UITableViewCell, который загружает, устанавливает изображение, а затем вызывает self.setNeedsLayout(), и он работает.Обновление макета UITableViewCell из его образа Просмотр после получения изображения

ответ

0

Чтобы загрузить изображения асинхронно, используйте librairies, такие как SDWebImage. Я думаю, что он может решить вашу проблему и улучшить работу.

Edit:

Из SDWebImage документации:

Он обеспечивает:

  • категорию UIImageView добавления веб-изображения и кэш
  • Асинхронный изображения загрузчик
  • asynchronou s память + кэширования образа диска с автоматическим истечением кэша обработки
  • гарантии, что те же URL не будут загружены в несколько раз
  • гарантии, что фиктивные адреса не будут повторены снова и снова
  • гарантии того, что основные нить никогда не будет заблокирована
  • Спектакли!
  • ...
+0

Я постараюсь сделать это. Я просто хотел сам закодировать все :) – Preetygeek

+0

Насколько я понимаю, я использовал это, но я решил использовать эту библиотеку, потому что это дает вам много интересных функций, таких как кэширование изображений. С одной строкой вы будете загружать ваше изображение асинхронно, и вам больше не придется об этом думать. Я заменил все мои изображения, загрузив их, и мое приложение сильно выиграет от эффективности :) – AnthoPak

+0

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