iPhone - перезагрузка UITableView при прокрутке - PullRequest
0 голосов
/ 08 августа 2011

У меня есть UITableView, и каждый UITableViewCell отображает уникальный UIImage, полученный из Интернета. Когда мы прокручиваем UITableView, ячейки восстанавливаются и каждый раз вызывается tableView: cellForRowAtIndexPath: для настройки ячеек. Таким образом, он загружает UIImages снова и снова из Интернета, и прокрутка не гладкая.

Решение, которое я нашел для себя сейчас, состоит в том, чтобы создать NSMutableArray из всех этих UIImages на ViewDidLoad, а затем загрузить изображения в UITableViewCells из этого NSMutableArray, что, безусловно, дает мне плавную прокрутку.

Меня беспокоит мое собственное решение: когда я храню все UIImages в NSMutableArray и все эти объекты хранятся в памяти до тех пор, пока приложение работает, я, скорее всего, неэффективно использую память.

Есть ли лучший, более эффективный способ сделать это, обеспечивающий плавную прокрутку и лучшее использование памяти?

Ответы [ 3 ]

1 голос
/ 08 августа 2011

Я думаю, что этот пример поможет вам .. http://kosmaczewski.net/2009/03/08/asynchronous-loading-of-images-in-a-uitableview/

0 голосов
/ 08 августа 2011
  1. Вы должны использовать массив ссылок на изображения вместо изображения.
  2. Вам следует загружать изображение асинхронно, чтобы улучшить производительность создания UITableviewCell.
  3. Убедитесь, что вы используете dequeueReusableCellWithIdentifier , это обеспечит более плавную прокрутку.
0 голосов
/ 08 августа 2011

Кэшируйте загруженные изображения в файловой системе. При загрузке ячейки сначала убедитесь, что кэшированная копия связанного изображения доступна, а затем загрузите ее, используя [UIImage imageWithContentsOfFile:].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...