Я использую статический UITableview, настроенный в раскадровке.Для некоторых ячеек (Стиль = Правая деталь) я установил detailTextlabel.text в viewWillAppear следующим образом:
self.recentProductsCell.detailTextLabel.text = description;
Для этой ячейки метка не отображается.Если я NSLog текст, он показывает, что все в порядке.Я проверил, что detailTextLabel не скрыт.Я не изменил никаких других свойств в раскадровке.В ячейке есть аксессуар detailDisclosure, но его установка на что-то другое не помогла.
Тогда странная вещь: если я запускаю и detailTextlabel не показывает, я выбираю строку, нажав на нее и двигая пальцем,С тех пор detailTextLabel показывает!Даже при скрытии и повторном отображении видимость этикетки остается видимой.Сброс и установка его в коде, однако, заставляет метку снова исчезнуть.
Могу ли я сделать что-то не так, или это ошибка?
Отредактировано: проверено в 5.0 и 5.1, одинаковое поведение.Я нашел уродливый обходной путь, выбрав и отменив выбор этой строки в коде в viewWillAppear.Поэтому я добавил:
[self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:3 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];
[self.tableView deselectRowAtIndexPath: [NSIndexPath indexPathForRow:3 inSection:0] animated:NO];
Это работает, но я вижу, что строка выбирается и отменяется.Поэтому я также изменил selectionStyle, но теперь эта строка мигает при отображении представления.
Дополнительный комментарий: в том же viewWillAppear я установил detailLabel других статических ячеек, и они отображаются очень хорошо.