UITableView проблема многоразовых ячеек - PullRequest
0 голосов
/ 12 сентября 2010

У меня есть UITableView, и его данные обновляются из соединения с сервером.Для UITableViewcell у меня есть расположение некоторых меток по всей строке.Поэтому он может рассматриваться как сетка с UILabels (общее количество меток = строк таблицы * столбцов таблицы).

Когда данные обновляются, я добавил анимацию для UILabel, чтобы выделить обновление ячейки таблицы. (Меткицвет фона меняется примерно на 0,5 секунды и восстанавливается прежний цвет фона).Там я сравниваю старое значение с новым значением и добавляю анимацию, сравнивая их.Это работает нормально.

Моя проблема - когда я прокручиваю таблицу, из-за многократно используемых ячеек надписи становятся анимированными (хотя соответствующие значения не меняются).У кого-нибудь есть идеи, как избежать этой проблемы?Благодарю.

1 Ответ

3 голосов
/ 12 сентября 2010

Звучит так, как будто вы звоните reloadData и анимируете tableView:cellForRowAtIndexPath:. Не делай этого. Нет никаких гарантий, что UITableView будет повторно использовать одну и ту же ячейку (звучит так, как и раньше, но на это не стоит полагаться, и я уверен, что это не так для reloadRowsAtIndexPath:withRowAnimation:). Например, если вы удалите строку, то это не так.

Вы можете использовать -[UITableView visibleCells], чтобы получить массив видимых в данный момент ячеек. Зацикливайтесь на массиве и используйте пользовательский метод, чтобы сообщить каждой ячейке о необходимости перезагрузки с анимацией.

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