1

我拥有的表格视图经常更改单元格背景颜色。设置的颜色-(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];     


 }

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

4

1 回答 1

3

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

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

于 2013-06-09T19:49:15.410 回答