我有一个静态UITableView
,有四个部分,每个部分都有一个单元格。在segue到视图期间,进行两次API调用(前两个单元格中的每一个都有一个)。完成后,前两个单元格将使用信息进行更新,并且背景颜色应根据此信息进行更改。
API调用的完成处理程序重新加载单元格,以便使用以下命令更新背景颜色:
第1节:
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
第2节:
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationNone];
要在重新加载时更新背景颜色我使用(getColorForCell
是我的):
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
cell.backgroundColor = [self getColorForCell:[self.tableView cellForRowAtIndexPath:indexPath]];
}
这似乎适用于第一个单元格,但第二个单元格的背景颜色不会更新。可能是什么原因?
更新 - getColorForCell
代码:
- (UIColor *)getColorForCell:(UITableViewCell *)cell {
UIColor *vfr = [UIColor colorWithRed:127.0f/255.0f green:233.0f/255.0f blue:205.0f/255.0f alpha:1.0];
UIColor *mvfr = [UIColor colorWithRed:255.0f/255.0f green:255.0f/255.0f blue:163.0f/255.0f alpha:1.0];
UIColor *ifr = [UIColor colorWithRed:239.0f/255.0f green:100.0f/255.0f blue:97.0f/255.0f alpha:1.0];
UIColor *none = [UIColor colorWithRed:224.0f/255.0f green:223.0f/255.0f blue:213.0f/255.0f alpha:1.0];
UILabel *oLabel = [cell viewWithTag:102];
if ([oLabel.text isEqualToString: @"VFR"]) {
return vfr;
} else if ([oLabel.text isEqualToString:@"IFR"]) {
return ifr;
} else if ([oLabel.text isEqualToString:@"MVFR"]) {
return mvfr;
}
return none;
}
更新2
我的UILabel
标签只是一个问题。其他一切都在发挥作用。没关系。