使用括号显示用户的姓名

时间:2015-01-09 05:59:43

标签: ios objective-c uilabel

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

喜欢.. (Dhaval Tannarana)

但有时候,如果用户的名字长度太大,那么显示。

(Dhaval Tann ......

我想这样做

(Dhaval Tann ......)

帮我解决这个问题

3 个答案:

答案 0 :(得分:2)

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

您的姓名字符串:

NSString *name = @"Dhaval Tannarana";

现在,根据标签的宽度,您可以使用字符串的某些字符...

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

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

   labnanme.text = str; 

您的输出

enter image description here

答案 1 :(得分:2)

这里需要两个UILabel。一个大UILabel即显示(............)字符串。

一个内部标签,可以是外部标签或该标签顶部的子视图。

这样内部标签实际上可以显示用户名。

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

enter image description here

在图片中看到黄色标签是外部标签显示()括号,红色标签是内部标签,在这里显示用户名。

答案 2 :(得分:0)

而不是使用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];

输出:

(Dhaval Tann ......)