Получение UILabel для создания многоточия, а не сокращения шрифта - PullRequest
28 голосов
/ 11 октября 2011

Когда я динамически изменяю текст UILabel, я бы предпочел получить многоточие (точка, точка, точка), а не изменять размер текста автоматически. Как это сделать?

Другими словами, если у меня есть UILabel со словом Cat с размером шрифта 14, а затем я изменяю слово на Hippopotamus, шрифт сокращается, чтобы соответствовать всему слову. Я бы предпочел, чтобы слово было автоматически обрезано с последующим многоточием.

Я предполагаю, что есть параметр, который можно изменить в моем объекте UILabel. Я бы предпочел не делать это программно.

Ответы [ 4 ]

82 голосов
/ 11 октября 2011

Установите следующие свойства:

label.adjustsFontSizeToFitWidth = NO;
label.lineBreakMode = NSLineBreakByTruncatingTail;

Вы также можете установить эти свойства в конструкторе интерфейса.

10 голосов
/ 01 июня 2015

Быстрое решение:

label.lineBreakMode = .ByTruncatingTail

Swift 3:

label.lineBreakMode = .byTruncatingTail
0 голосов
/ 01 апреля 2019

У меня возникла проблема с созданием многоточия после стилизации UILabel, и мне нужно было использовать UILabel.attributedText вместо UILabel.text. В стиле абзаца есть режим разрыва строки, который переписывает UILabel.lineBreakMode при использовании атрибутивного текста. Вам нужно установить lineBreakMode в .byTruncatingTail для стиля абзаца приписанной строки, если вы хотите достичь многоточия.

, например

    let attributedString = NSMutableAttributedString(string: "...", attributes: [...]);
    let textRange = NSRange(location: 0, length: textString.length);
    let paragraphStyle = NSMutableParagraphStyle();
    paragraphStyle.lineBreakMode = .byTruncatingTail;
    textString.addAttribute(.paragraphStyle, value: paragraphStyle, range: textRange);
    uiLabel.attributedText = attributedString;
0 голосов
/ 20 февраля 2015

Я достиг следующих шагов:

1.Увеличить высоту метки, как я сделал, чтобы поместились 2 строки.

2.Выбрать метку, перейти кattributes inspector

3.Выберите Line Breaks = Word Wrap

4. Также увеличьте линии, как 2,3

changing line break in attributes inspector Работали для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...