Aqui está a maneira mais eficiente que me deparei para resolver esse problema, use o método delegado willDisplayCell (isso também cuida da cor branca do plano de fundo do rótulo de texto ao usar cell.textLabel.text e / ou cell.detailTextLabel.text ):
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { ... }
Quando esse método delegado é chamado, a cor da célula é controlada pela célula, e não pela exibição da tabela, como quando você usa:
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath { ... }
Portanto, no corpo do método delegado da célula, adicione o código a seguir para alternar cores das células ou use a chamada de função para tornar todas as células da tabela da mesma cor.
if (indexPath.row % 2)
{
[cell setBackgroundColor:[UIColor colorWithRed:.8 green:.8 blue:1 alpha:1]];
}
else [cell setBackgroundColor:[UIColor clearColor]];
Esta solução funcionou bem na minha circunstância ...