2010-09-13 110 views
0

我有一个自定义的UITableViewCell充当检查列表。当用户点击所选项目时,它会从红色变为绿色,表示选择,但随着用户向下滚动列表,一旦它们回到顶部,图像就会变回默认的红色值。滚动后保留细胞图像UITableView

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

谢谢

回答

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属性。这确实意味着您必须保持足够的状态来重新创建任何表格单元格 - ,包括您正在使用的图像