当我动态更改UILabel的文本时,我更喜欢获得省略号(点,点,点)而不是自动调整文本大小。如何做到这一点?
换句话说,如果我的UILabel带有大小为14的单词Cat
,然后我将单词更改为Hippopotamus
,则字体缩小以适合所有单词。我宁愿自动截断这个词,然后是省略号。
我假设有一个参数可以在我的UILabel对象中更改。我宁愿不以编程方式执行此操作。
答案 0 :(得分:80)
设置以下属性:
label.adjustsFontSizeToFitWidth = NO;
label.lineBreakMode = NSLineBreakByTruncatingTail;
您还可以在界面构建器中设置这些属性。
答案 1 :(得分:10)
快速解决方案:
label.lineBreakMode = .ByTruncatingTail
斯威夫特3:
label.lineBreakMode = .byTruncatingTail
答案 2 :(得分:0)
在设置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;
答案 3 :(得分:0)
答案 4 :(得分:-4)
我通过以下步骤实现了目标:
1.像我一样增加标签的高度,使2条线适合。
2.选择标签,转到attributes inspector
3.选择Line Breaks
= Word Wrap
4.也增加线,如2,3
为我工作