2010-09-13 3 views
0

У меня есть пользовательский UITableViewCell, который действует как контрольный список. Когда пользователь нажимает на выбранный элемент, он переходит от красного к зеленому, указывая на выделение, однако, когда пользователи прокручиваются дальше по списку, как только они возвращаются вверх, изображение снова возвращается к его красному значению по умолчанию.Сохранение изображения ячейки после прокрутки UITableView

Как я могу сохранить состояние изображения, поскольку tableview перерабатывает ячейки?

Thanks

ответ

1

Похоже, вы используете UITableViewCell s для хранения состояния ваших данных таблицы. Это неправильный подход, потому что ячейки повторно используются. Вы должны сохранять состояние в отдельном хранилище данных. Это может быть просто массив, который вы храните в памяти в своем подклассе UITableViewController или что-то постоянное, как SQLite или Core Data. Затем это состояние переносится обратно в ячейку, когда в представлении таблицы вас спрашивают в tableView:cellForRowAtIndexPath:.

0

У меня была та же проблема. Использование:

MyTableViewCell* cell = [tableView dequeCellWithReuseIdentifier:@"MyTableViewCell"]; 
if (cell == nil) { /* create cell */ } 
/* and now you reset the properties of that cell */ 
cell.text = [myCellText objectAtIndex:indexPath.row]; 

Ключевым моментом здесь является сбросить свойства ячейки таблицы из очереди на основе indexPath. Это означает, что вам нужно будет поддерживать достаточное состояние, чтобы воссоздать любую ячейку таблицы - , включая изображения, которые вы используете.

Смежные вопросы