Подтвердить что ты не робот

Получение UILabel для создания многоточия, а не сокращения шрифта

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Решение Swift:

label.lineBreakMode = .ByTruncatingTail

Swift 3:

label.lineBreakMode = .ByTruncatingTail

Ответ 3

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

например,

    let attributedString = NSMutableAttributedString(string: "example long 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

Ответ 4

Я выполнил следующие шаги:

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

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

3.select Line Breaks= Word Wrap

4. Также увеличивайте линии, например 2,3

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