滚动后TableView颜色重置

时间:2013-06-09 19:02:17

标签: ios objective-c cocoa-touch uitableview

表格视图我经常更改单元格背景颜色。 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath中设置的颜色很好但在表视图加载后设置了一些颜色:

- (void) ChangeCellColorAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:currentCell inSection:0]];

cell.backgroundView.backgroundColor = [UIColor orangeColor];     


 }

如果使用该方法更改单元格,它将恢复为滚动到视图外时最初设置的单元格。当我滚出视图时,如何确保它保持相同的颜色。

1 个答案:

答案 0 :(得分:2)

您应该考虑单元格加载过程的工作原理:当您设置可见单元格的颜色并且用户滚动到该单元格不可见的点时,然后滚动回原始点,表格视图将再次调用tableView:cellForRowAtIndexPath:,将创建一个新单元格(更好地说,如果你按照我的假设正确地执行了已经创建的单元格将被重用),并且将忽略先前设置的背景颜色。

解决方法是知道tableView:cellForRowAtIndexPath:中每个单元格应该具有哪种颜色并在那里设置颜色。