我发现了类似的问题,询问如何在UIButton上使用多行文本,解决方案是设置
[myUIButton.titleLabel setLineBreakMode:UILineBreakModeWordWrap];
[myUIButton setTitle:myTitle forState:UIControlStateNormal];
但是,这导致按钮标题占用许多行。我尝试使用限制行数
[myUIButton.titleLabel setNumberOfLines:2];
但这对最终的行数没有任何影响。
有没有一种方法可以将换行的单词限制为UIButton标题上的2行,然后用“...”将尾部截断?
最佳答案
通过在lineBreakMode
之前设置numberOfLines
,可以实现所需的结果…
这是因为lineBreakMode
似乎抵消了numberOfLines
设置,因此我们按此顺序进行操作。
目标C:
[button.titleLabel setLineBreakMode: UILineBreakModeTailTruncation];
[button.titleLabel setNumberOfLines:2];
[button setTitle:myTitle forState:UIControlStateNormal];
斯威夫特3:
Xcode 6及更高版本中的
UILineBreakMode
替换为NSLineBreakMode
button.titleLabel?.lineBreakMode = NSLineBreakMode.byTruncatingTail
button.titleLabel?.numberOfLines = 2
button.setTitle(myTitle, for: UIControlState.normal)
关于带有尾部截断的UIButton多行文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5397401/