Я использую UITableView
со стилем ячейки UITableViewCellStyleValue1
.
I ' Я хочу иметь несколько строк в detailTextLabel
, это возможно? Или я должен сделать собственную ячейку?
Вы можете установить cell.detailTextLabel.numberOfLines = 2
, чтобы получить там 2 строки. Однако я сомневаюсь, что в этом случае UITableViewCell разместит ярлыки так, как вы ожидаете. Вы можете создать подкласс UITableViewCell и переопределить -layoutSubviews
, чтобы расположить метки так, как вы хотите. Вы можете вызвать [super layoutSubviews]
, а затем просто настроить положение меток. Возможно, вы захотите использовать - [NSString sizeWithFont: constrainedToSize: lineBreakMode:]
для вычисления правильного размера текстовой метки детали.
В качестве альтернативы, вместо создания подкласса от UITableViewCell, вы можете попробовать внести изменения в -tableView: willDisplayCell: forRowAtIndexPath:
, хотя, если ячейка когда-либо решит, что ей необходимо изменить макет, ваши настройки будут удалены. . Я рекомендую вам использовать метод подклассов.
Изменить : Кстати, с подходом подкласса все, что вам нужно сделать, это изменить [UITableViewCell alloc]
на [MyTableViewCellSubclass alloc]
. Поскольку вы не вводите новые методы или свойства, переменная по-прежнему может оставаться типизированной как UITableViewCell, и вам не придется изменять какой-либо другой код.
detailTextLabel - это UILabel, правила переноса слов применяются точно так же, как и с ярлыком, который вы создаете.
РЕДАКТИРОВАТЬ: Просто подумал, вам также потребуется изменить высоту ячейки, если текст выходит за пределы некоторого порогового значения строк. возможно 2 или 3 в порядке.