UITableView - не выгружать ячейки, когда они уходят с экрана - PullRequest
2 голосов
/ 14 октября 2010

Мой tableView состоит из 5-10 ячеек, каждая из которых содержит прокрутку изображений.Проблема в том, что, когда ячейка выходит за пределы экрана, она удаляет все изображения и затем перезагружает их, когда ячейка возвращается на экран.Я знаю, что это сделано из соображений производительности, но в этом случае это выглядит плохо.Есть ли способ предотвратить разгрузку ячеек, когда они уходят с экрана?

Ответы [ 3 ]

5 голосов
/ 14 октября 2010

Да, конечно.Общая стратегия заключается в предварительной загрузке всех ваших UITableViewCell объектов самостоятельно.Вы можете сделать это в viewDidLoad и выгрузить их в viewDidUnload, сохранив их в NSMutableArray, а затем сослаться на соответствующий индекс в массиве в вашей реализации tableView:cellForRowAtIndexPath:.

0 голосов
/ 14 октября 2010

Спасибо за дополнительное объяснение.Это было довольно полезно.Вычислив высоту, если uitableview, основываясь на высоте ячеек uitaleview, вы сможете избежать возникшей проблемы, не отключая повторно используемые ячейки.Кроме того, если вы перезагружаете ячейки из сети, вы наверняка выиграете от некоторого кэширования, как упоминалось ранее.

0 голосов
/ 14 октября 2010

У вас должна быть довольно веская причина не делать то, что делает Apple. С 5-10 ячейками, похоже, у вас нет веских причин. Возможно, вы можете улучшить загрузку ячеек, используя фоновые потоки в NSOperationQueue.

Этот пост может быть полезен:

https://stackoverflow.com/questions/1408997/dynamic-uiimage-content-loading-in-uitableview-code

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