我已将UILabel
放在我的应用程序中,因为我希望在文本长度超过特定数量时显示文本....
因为如果文本更长,则会产生设计问题。
请告知使用哪种功能。
答案 0 :(得分:5)
试试这个
yourLabel.lineBreakMode=UILineBreakModeTailTruncation;
如果要从界面构建器添加UILabel,可以直接进行。 选择您的UILabel,并在 Attriubtes Inspector =>的实用工具列中标签部分=> 换行设置截断尾巴
答案 1 :(得分:2)
试试这会对你有所帮助。
NSString *string=YourString;
int size=[YourString length];
if (size>21)
{
NSMutableString *string1 = [[NSMutableString alloc]init];
char c;
for(int index = 0;index <20 ;index++)
{
c =[string characterAtIndex:index];
[string1 appendFormat:@"%c",c];
}
[string1 appendFormat:@"..."];
string=string1;
}
在UILabel上添加“string”。
答案 2 :(得分:1)
#define EXCEEDED_LENGTH 8
- (NSString *) checkStringLength:(NSString *)str
{
if(str.length >= EXCEEDED_LENGTH)
{
return [NSString stringWithFormat:@"%@...",[str subStringToIndex:EXCEEDED_LENGTH-1]];
}
return str;
}
yourLabel.text = [self checkStringLength:@"Hello World !!"];
类似于Hello Wo...
的输出为了获得更好的输出,您可以在将字符串传递给函数之前trim
whitespaces
。
答案 3 :(得分:0)
要么UILable
尺寸(长度/宽度)动态,
或者
你可以UITextView
使用编辑禁用,所以如果有长文本,它将是可滚动的。
答案 4 :(得分:0)
根据您分享的信息,我认为autoshrink
和linebreakermode
可能是根本原因.IT是尝试显示指定框架中内容的属性,该内容将减少和调整字体大小
解决问题的两种方法
答案 5 :(得分:0)
CGSize constraint = CGSizeMake(690.0, 2000.0);
CGSize size_txt_overview1 = [[headItemArray objectAtIndex:k] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:18] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
UILabel *lbl_headitem = [[UILabel alloc]initWithFrame:CGRectMake(3,h, 690, size_txt_overview1.height)];
lbl_headitem.numberOfLines=0;
请在UILabel
约束中设置CGSize
宽度和高度。最好的方式..它对我有用。
答案 6 :(得分:0)
这是UILabel类别的方法
-(void)setTruncatedTextWithDotsIfNeeded:(NSString *)text
{
float fullTextWidth = [text sizeWithFont:self.font].width;
float labelWidth = self.frame.size.width;
if(fullTextWidth<=labelWidth){
[self setText:text];
return;
}
NSString *dots = @"…";
float dotsWidth = [dots sizeWithFont:self.font].width;
NSRange fullRange = [text rangeOfString:text];
for(int i = fullRange.length; i >= fullRange.location; i--){
NSRange currentRange;
currentRange.location = 0;
currentRange.length = i;
NSString *partialText = [text substringWithRange:currentRange];
float partialTextWidth = [partialText sizeWithFont:self.font].width;
if(partialTextWidth + dotsWidth <= labelWidth){
[self setText:[NSString stringWithFormat:@"%@...",partialText]];
return;
}
}
}