表格视图我经常更改单元格背景颜色。 -(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];
}
如果使用该方法更改单元格,它将恢复为滚动到视图外时最初设置的单元格。当我滚出视图时,如何确保它保持相同的颜色。
答案 0 :(得分:2)
您应该考虑单元格加载过程的工作原理:当您设置可见单元格的颜色并且用户滚动到该单元格不可见的点时,然后滚动回原始点,表格视图将再次调用tableView:cellForRowAtIndexPath:
,将创建一个新单元格(更好地说,如果你按照我的假设正确地执行了已经创建的单元格将被重用),并且将忽略先前设置的背景颜色。
解决方法是知道tableView:cellForRowAtIndexPath:
中每个单元格应该具有哪种颜色并在那里设置颜色。