UILabel не может расширять номера строк в Objective C - PullRequest
0 голосов
/ 27 сентября 2018

Здесь я соединил изображения моего вида эмулятора и вида xcode xib.

enter image description here

enter image description here

Это место, где я прикрепил строку к UILabel

cell.nameLabel.text = self.dataSourceArray[indexPath.row][@"medicine"][@"name"];

В эмуляторе показаны только две строки для любой длинной строки.Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Это не имеет ничего общего с текстом, установленным для UILabel, но с ограничениями, используемыми в этой XIB.
Если ячейка имеет статическое (неадаптируемое) значение, а другие представления взаимодействуют по вертикали сUILabel не будет уменьшаться, тогда у UILabel не будет места для роста, и он не будет отображать текст должным образом.Кстати, желтые линии в вашей XIB указывают на то, что вы видите не то, что будет выглядеть ячейка во время выполнения.

Вы можете проверить с помощью отладчика View Hierarchy, если UILabel имеет достаточно места для отображения3 строки, которые вы хотите.Пока приложение запущено (запущено XCode), в нижней панели (вероятно, над областью отладки) есть нижняя часть, называемая «Иерархия представления отладки»

Debug View Hierarchy

Затем вы можете решить, хотите ли вы уменьшить интервал вокруг этой UILabel или увеличить ячейку, чтобы UILabel могла быть настолько большой, насколько она хочет.Если это последнее, проверьте учебники UITaableViewCell по авторазмеру , как упоминал Евгений.

0 голосов
/ 27 сентября 2018

Самый простой способ - использовать ячейки динамического отображения высоты таблицы.Правильно настройте ограничения на UITableViewCell - статическая высота для всех элементов, но расширяемая метка должна иметь ограничение More than or equals (>=) высоты.В вашем контроллере представления добавьте эти строки в методе viewDidLoad:.

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 300

Для получения дополнительной информации посмотрите этот учебник .

...