2011-05-20 73 views
6

我需要插入到UILabel多行文字。我做到以下幾點:Multiline UILabel?

NSMutableString * spName = [[NSMutableString alloc ]initWithString:@""]; 

for (NSUInteger i=0; i<arrEx.count; ++i) 
{ 
    ExInfo * exInf = [arrEx objectAtIndex:i]; 
    [spName appendString:[MyObject getName:exInf.spNum]]; 
    [spName appendString:@" "]; 
    [spName appendString:exInf.totalTime]; 
    [spName appendString:@"\n"];   
} 

CGSize size = [spName sizeWithFont:[UIFont systemFontOfSize:14] 
       constrainedToSize:constraint 
        lineBreakMode:UILineBreakModeWordWrap]; 

[cell.exsInfoLabel setFrame:CGRectMake(CELL_CONTENT_MARGIN, top, CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), size.height)]; 
[cell.exsInfoLabel setText:spName]; 
[spName release]; 

arrEx包括兩個項目,所以它應該是兩個字符串。但UITableViewCell只包含第一個字符串。 在IB中,我爲UILabel cell.exsInfoLabel設置了行數爲0。

回答

10

試試這個:的setText之前

CGSize labelsize; 
UILabel *commentsTextLabel = [[UILabel alloc] init]; 
[commentsTextLabel setNumberOfLines:0]; 
[commentsTextLabel setBackgroundColor:[UIColor clearColor]]; 
NSString *text = @"yourtextString"; 
[commentsTextLabel setFont:[UIFont fontWithName:@"Helvetica"size:14]]; 
labelsize = [text sizeWithFont:commentsTextLabel.font 
      constrainedToSize:CGSizeMake(268, 2000.0) 
       lineBreakMode:UILineBreakModeWordWrap]; 
commentsTextLabel.frame = CGRectMake(10, 24, 268, labelsize.height); 
[cell.contentView addSubview:commentsTextLabel]; 
[commentsTextLabel release]; 
+0

根據您的要求修改的框架。 – Gypsa 2011-05-20 10:26:48

+0

嗨,我試圖setNumberOfLines設置爲0.它不起作用我我理解你的帖子? – 2011-05-20 11:05:35

+5

行數0意味着您可以添加無限數量的行。蘋果文檔說: - 該屬性控制使用的最大行數,以便將標籤的文本放入其邊界矩形中。此屬性的默認值爲1.要刪除任何最大限​​制並根據需要使用盡可能多的行,請將此屬性的值設置爲0. – Gypsa 2011-05-20 11:19:49

2

嘗試:

cell.exsInfoLabel.numberOfLines = 2; 

或者:

cell.exsInfoLabel.numberOfLines = arrEx.count; 
+0

這不幸沒有工作:( – 2011-05-20 10:53:15