У меня есть простое табличное представление, которое правильно выглядит, за исключением того, что textLabel в одной из строк выглядит как черная полоса, то есть как черный текст на черном фоне. Если я выберу эту строку, текст появится нормально. Но если я выберу другую строку, она снова исчезнет.
Я обнаружил, что заштрихованная строка была программно выбрана во время метода - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
.
Мой код выглядел примерно так:
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.textLabel.font = [UIFont systemFontOfSize:14];
cell.textLabel.text = @"some text";
if (self.selectedRow == indexPath.row) cell.selected = YES;
Я решил проблему, выбрав ячейку перед установкой selectionStyle, то есть переместив последнюю строку в верх.
Я уверен, что должно быть рациональное объяснение, но думал, что внесу свой вклад на тот случай, если кто-то еще столкнется с чем-то похожим.