我有一个最多 3 行的 UILabel。这是代码:
_testLabel = [[UILabel alloc] init];
_testLabel.text = @"Line 11111111111111\nLine 2\nLine 3";
_testLabel.numberOfLines = 3;
_testLabel.lineBreakMode = NSLineBreakByTruncatingTail;
[_testLabel sizeToFit];
_testLabel.width -= 5;
通过调用 sizeToFit 然后减去 5,我使第 1 行换行。这反过来又将第 3 行推到了允许的范围之外,因此在“第 2 行”的末尾有一个“...”并且第 3 行没有显示。
我真正希望它截断第 1 行,而不是换行第 1 行和截断第 3 行。这样,任何太长而无法适应指定宽度的行都将被截断而不是换行。
有没有办法做到这一点?
我能想到的最好的方法是在每个 '\n' 字符处拆分字符串,并为每一行设置一个单独的 UILabel,每个行的 numberOfLines 设置为 1。
编辑:
更清楚地说,这是上面示例代码中标签的样子:
Line
11111111111111
Line 2...
这是我希望它看起来的样子:
Line 11111111111...
Line 2
Line 3