滚动UITableView后保留单元格图像

时间:2010-09-13 16:00:24

标签: iphone uitableview

我有一个自定义UITableViewCell作为检查列表。当用户点击所选项目时,它会从红色变为绿色,表示选择,但是当用户向下滚动列表时,一旦它们返回到顶部,图像就会变回其默认的红色值。 / p>

当tableview回收单元格时,如何保留图像的状态?

由于

2 个答案:

答案 0 :(得分:1)

听起来好像使用UITableViewCell来存储表数据的状态。这是错误的方法,因为细胞被重复使用。您应该将状态保存在单独的“数据存储区”中。这可以简单地是一个数组,保存在UITableViewController子类的内存中,或者像SQLite或Core Data那样持久存在的数组。然后,当表格视图要求您进入tableView:cellForRowAtIndexPath:时,此状态将转移回单元格。

答案 1 :(得分: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 重置出列表格单元格的属性。这意味着您将不得不保持足够的状态来重新创建任何表格单元格 - 包括您正在使用的图像