Как добавить точки в UILabel, если текст не подходит для рамки

У меня есть ячейка с многострочными UILabels, но когда текстовая метка не соответствует рамке, то точки не отображаются. Как я могу это исправить?

Ответ 1

Вы пробовали это?

yourLabel.adjustsFontSizeToFitWidth = NO;
yourLabel.lineBreakMode = NSLineBreakByTruncatingTail;

До iOS6 используйте UILineBreakModeTailTruncation

Ответ 2

для swift 2.0 он будет

yourLabel.adjustsFontSizeToFitWidth = false;
yourLabel.lineBreakMode = NSLineBreakMode.ByTruncatingTail

Ответ 3

Если режим linebreakmode не работает foryou, другой вариант - это фактически рассчитать длину, которую должна выполнить ваша строка, и если она будет длиннее размера метки, добавьте "..." самостоятельно.

Вам придется играть со следующим кодом для обработки для нескольких строк (но идея похожа)

Например, возьмите ярлык (например, detailLabel)

UILabel* detailLabel = cell.detailTextLabel;
CGSize expectedDetailLabelSize = [detailLabel.text sizeWithFont:detailLabel.font
                                             constrainedToSize:maximumLabelSize
                                                 lineBreakMode:detailLabel.lineBreakMode];

Ответ 4

Для SWIFT 3 +

label.adjustsFontSizeToFitWidth = false;
label.lineBreakMode = NSLineBreakMode.byTruncatingTail;