I'm having a UITableView with alternating colored UITableViewCells. And the table can be edited: rows can be reordered and deleted. How do I update the cells alternating background color, when the rows get reordered or deleted?

I'm using this to draw the alternating colored cells:

```
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    if ([indexPath row] % 2) {
        // even row
        cell.backgroundColor = evenColor;
    } else {
        // odd row
        cell.backgroundColor = oddColor;
    }
}

```

But this method is not being called when a row gets reordered or deleted. And I can't call `[tableView reloadData]` from the following method, because it crashes the app in an infinite loop:

```
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
    // Move the object in the array
    id object = [[self.list objectAtIndex:[fromIndexPath row]] retain];
    [self.list removeObjectAtIndex:[fromIndexPath row]];
    [self.list insertObject:object atIndex:[toIndexPath row]];
    [object release];

    // Update the table ???
    [tableView reloadData]; // Crashes the app in an infinite loop!! 
}

```

Does anybody have a pointer or a best practices solution to deal with the issue of reordering alternating colored cells?

Thanks