Установить переменную для активной строки:
int activeRow;
При построении ячейки проверьте, является ли она активной строкой, и установите цвет фона
if (indexPath.row == activeRow) {
cell.setMyBackgroundColor = [UIColor myCoolColor];
} else {
cell.setMyBackgroundColor = [UIColor normalColor];
}
Не забудьте установить цвет фона даже в обычном случае, так как они используются повторно.
При выборе (или в случае необходимости) обновите эту конкретную ячейку:
NSArray *paths = [NSArray arrayWithObject:indexPath];
[self.tableView reloadRowsAtIndexPaths:paths withRowAnimation:YES];
Я бы предложил этот метод, так как могут быть события, которые вызывают обновление вашей таблицы, и вы можете не захотеть терять цвет фона. Это может произойти, если вы просто установите ячейку непосредственно при выделении.