Ответ 1
Задайте следующие свойства:
label.adjustsFontSizeToFitWidth = NO;
label.lineBreakMode = NSLineBreakByTruncatingTail;
Вы также можете установить эти свойства в построителе интерфейса.
Когда я динамически меняю текст UILabel, я бы предпочел получить многоточие (точка, точка, точка), а затем автоматически изменить размер текста. Как это сделать?
Другими словами, если у меня есть UILabel со словом Cat
с размером шрифта 14, а затем я меняю слово на Hippopotamus
, шрифт сжимается, чтобы соответствовать всему слову. Я предпочел бы, чтобы слово автоматически усекалось, а затем эллипсис.
Я предполагаю, что есть параметр, который можно изменить в моем объекте UILabel. Я бы предпочел не делать это программно.
Задайте следующие свойства:
label.adjustsFontSizeToFitWidth = NO;
label.lineBreakMode = NSLineBreakByTruncatingTail;
Вы также можете установить эти свойства в построителе интерфейса.
Решение Swift:
label.lineBreakMode = .ByTruncatingTail
Swift 3:
label.lineBreakMode = .ByTruncatingTail
У меня была проблема с созданием многоточия после того, как я разработал 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
Я выполнил следующие шаги:
1. Увеличьте высоту метки, как я сделал так, чтобы 2 строки соответствовали.
2. Выберите метку, перейдите к attributes inspector
3.select Line Breaks
= Word Wrap
4. Также увеличивайте линии, например 2,3
Работал для меня