只有一个切片,静态UITableViewCell更新

时间:2015-12-15 23:43:39

标签: ios objective-c uitableview

我有一个静态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标签只是一个问题。其他一切都在发挥作用。没关系。

0 个答案:

没有答案