我有一个UILabel,显示用户使用Brackets登录的用户的全名。
喜欢.. (Dhaval Tannarana)
但有时候,如果用户的名字长度太大,那么显示。
(Dhaval Tann ......
我想这样做
(Dhaval Tann ......)
帮我解决这个问题
答案 0 :(得分:2)
您必须为标签宽度添加条件以及要在标签中放置多少字符串字符。
您的姓名字符串:
NSString *name = @"Dhaval Tannarana";
现在,根据标签的宽度,您可以使用字符串的某些字符...
if (name.length > 11)
{
name = [NSString stringWithFormat:@"%@...",[name substringToIndex:11]];
}
NSString *str = [NSString stringWithFormat:@"(%@)",name];
labnanme.text = str;
您的输出
答案 1 :(得分:2)
这里需要两个UILabel
。一个大UILabel
即显示(............)
字符串。
一个内部标签,可以是外部标签或该标签顶部的子视图。
这样内部标签实际上可以显示用户名。
您必须保持标签的宽度,使其看起来像一个标签。
在图片中看到黄色标签是外部标签显示()
括号,红色标签是内部标签,在这里显示用户名。
答案 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 ......)