Esta es la forma más eficiente que he encontrado para resolver este problema, use el método delegado willDisplayCell (esto también se encarga del color blanco para el fondo de la etiqueta de texto al usar cell.textLabel.text y / o cell.detailTextLabel.text ):
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { ... }
Cuando se llama a este método delegado, el color de la celda se controla a través de la celda en lugar de la vista de tabla, como cuando usa:
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath { ... }
Entonces, dentro del cuerpo del método de delegado de celda, agregue el siguiente código para alternar los colores de las celdas o simplemente use la llamada a la función para hacer que todas las celdas de la tabla tengan el mismo color.
if (indexPath.row % 2)
{
[cell setBackgroundColor:[UIColor colorWithRed:.8 green:.8 blue:1 alpha:1]];
}
else [cell setBackgroundColor:[UIColor clearColor]];
Esta solución funcionó bien en mi circunstancia ...