2012-10-09 123 views

回答

5

試試這個

yourLabel.lineBreakMode=UILineBreakModeTailTruncation; 

如果從界面生成器添加您的UILabel,你可以直接做到這一點。 選擇您的UILabel,並在公用事業Attriubtes督察 =>標籤節=>換行符設置截斷尾

+0

如果您使用的是NIB,您還可以在NIB中設置換行符模式。 –

+0

@robmayoff你提到它,我已經在我的答案中顯示如何做到這一點 – Neo

0

要麼你可以UILable尺寸(長/寬)動態,

或者

您可以用UITextView編輯禁用因此,如果有將是漫長的文本將是滾動的。

+0

你也可以使用sizeToFit和sizeThatFits,這也可以解決你的問題。 – kamleshwar

0

從您共享的信息我想autoshrinklinebreakermode可能是根本原因.IT是試圖顯示指定框架中的內容的屬性,它將減少並調整字體大小

2種方式來解決問題

  • 根據需要
  • 增加標籤的框架尺寸調整財產(以編程方式找到大小)
  • 也期待在邊緣插圖
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; 

} 

在您的UILable上添加「string」。

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; 

CGSize約束設置你的UILabel寬度和高度。最好的方式..它爲我工作。

+0

如果你也獲得了大量的數據。它會正常工作.. –

+0

請確保Yourlabel.numberOfLines = 0; –

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; 
      } 
     } 
    } 
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...爲了獲得更好的輸出,您可以trimwhitespaces前傳字符串的功能。

相關問題