截断UILabel中的部分文本

use*_*765 12 text-formatting objective-c uilabel ios ios7

我的要求是我需要在标签中显示文本,如果文本的长度太大而无法容纳在一行中,我需要在最后截断它,使得只有最后几个字符(通常一个数字b/w 1-1000所以文本长度可能会有所不同.)是可见的,其前面的文本被截断为"...".

所以文字看起来像"abcdefgijk ... 10"

有什么办法可以实现吗?

Sri*_*n N 15

UILabel *contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(50,100, 150, 30)];
contentLabel.text = @"abcdefghijklmnopqrstuvwxyz10";
contentLabel.lineBreakMode = NSLineBreakByTruncatingMiddle;
Run Code Online (Sandbox Code Playgroud)

将此标签添加到您的显示器.你应该得到这样的输出

abcdefghijklmnopq...10
Run Code Online (Sandbox Code Playgroud)


ric*_*cks 9

斯威夫特4:

如果有人像我一样遇到这个问题,

你需要设置你的label.numberOfLines = 1

如果将其设置为 0,它将在空格处截断。

所以你的代码应该看起来像

    label.numberOfLines = 1
    label.lineBreakMode = .byTruncatingTail
    label.adjustsFontSizeToFitWidth = false
Run Code Online (Sandbox Code Playgroud)


Mel*_*rne 5

对于每个寻找更新解决方案的人来说,swift 3:

yourLabel.lineBreakMode = .byTruncatingMiddle;
Run Code Online (Sandbox Code Playgroud)


Was*_*m05 0

NSString 类中有很多方法使用 -length ,然后使用其中任何一个

\n\n
\xe2\x80\x93 substringFromIndex:\n\xe2\x80\x93 substringWithRange:\n\xe2\x80\x93 substringToIndex:\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用 NSString stringwithFormat 创建一个临时字符串,将从 substringTo 索引和“.....”中获取所需的字符,然后通过 substringFromIndex 从字符串中获取数字。

\n\n

希望这可以帮助

\n