滚动后保留细胞图像UITableView
问题描述:
我有一个自定义的UITableViewCell充当检查列表。当用户点击所选项目时,它会从红色变为绿色,表示选择,但随着用户向下滚动列表,一旦它们回到顶部,图像就会变回默认的红色值。滚动后保留细胞图像UITableView
如何在tableview回收单元格时保留图像的状态?
谢谢
答
听起来就像您使用UITableViewCell
s来存储表格数据的状态。这是错误的方法,因为单元格被重用。你应该把状态保存在一个单独的'数据存储'中。这可以只是一个数组,它保存在UITableViewController
子类的内存中,或者像SQLite或Core Data一样持久化。当表格视图要求您输入tableView:cellForRowAtIndexPath:
时,此状态会转回单元格。
答
我有同样的问题。用途:
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属性。这确实意味着您必须保持足够的状态来重新创建任何表格单元格 - ,包括您正在使用的图像。