用括号显示用户名

Display user's name with Brackets

我有一个 UILabel,它显示用户的全名,该用户使用 Brackets 登录。

喜欢.. (Dhaval Tannarana)

但有时如果用户名长度过大则显示。

(Dhaval Tann...

这里我想这样做

(Dhaval Tann...)

帮我解决这个问题

您必须为标签宽度设置条件以及要在标签中放置多少个字符串字符。

您的姓名字符串:

NSString *name = @"Dhaval Tannarana";

现在,根据标签的宽度,你可以使用...

   if (name.length > 11)
   {
     name = [NSString stringWithFormat:@"%@...",[name substringToIndex:11]];
   }

   NSString *str = [NSString stringWithFormat:@"(%@)",name];

   labnanme.text = str; 

你的输出是

这里需要两个 UILabel。一大UILabel,就是显示(............)字串。

还有一个内部标签,它可以是外部标签的子视图或位于该标签之上。

所以里面的标签实际上可以显示用户名。

您必须保持标签的宽度,使其看起来像一个标签。

图中黄色标签是显示()括号的外标签,红色标签是显示用户名的内标签。

不使用 substringToIndex:我们可以使用 NSRange:rangeOfComposedCharacterSequencesForRange

NSString *name = @"Dhaval Tannarana";     
        if ([name length] > 10) {

                    NSRange range = [name rangeOfComposedCharacterSequencesForRange:(NSRange){0, 11}];
                    name = [name substringWithRange:range];
                }
    Label.text=[NSString stringWithFormat:@"(%@...)",name];

输出:

(达瓦尔·坦恩...)