Перезагрузка UITableView каждый раз, когда приложение выходит на передний план - PullRequest
0 голосов
/ 26 февраля 2011

это больше, чем вопрос, просьба о совете.

Сколько ресурсов стоило бы перезагрузить UITableView каждый раз, когда приложение выходит на передний план?

Что мне нужносделать это - изменить цвет UILabel внутри ячеек UITableView в зависимости от текущей даты, однако, зная, что обычные пользователи обычно не закрывают свое приложение и просто оставляют его работать в фоновом режиме, я бы предположил,что метод tableView: cellForRowAtIndexPath: не будет вызван при повторном запуске, и поэтому UILabel не будет обновляться соответствующим образом.

Я знаю, что метод reloadData вызывает метод tableView: cellForRowAtIndexPath:.
Мой вопрос: не посоветуете ли вы вызывать этот метод каждый раз, когда приложение выходит на передний план?
Если да, какие у меня есть альтернативы?

Заранее спасибо.
Ваша помощь оченьвысоко ценится.

Ответы [ 2 ]

2 голосов
/ 26 февраля 2011

reloadData кажется приемлемым для использования в вашем приложении.Это не будет слишком дорого, если ваш метод получения этих данных эффективен.Тогда не вызывайте всю базу данных SQL в массив, получайте 5 значений, отображаемых на экране при каждом обновлении данных.Пока вы не делаете что-то подобное, у вас все будет хорошо.Вы можете проверить это в приборах и контролировать использование памяти.

1 голос
/ 26 февраля 2011

reloadData должен вызывать tableView:cellForRowAtIndexPath: только для тех строк, которые действительно видны на экране. Скорость его будет в основном зависеть от других ваших методов UITableViewDataSource и UITableViewDelegate, в частности от методов делегирования, связанных с высотой, и методов источника данных, перечисленных для «Конфигурирование табличного представления» в документации .

Лучшая идея, вероятно, просто попробовать и выяснить.

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