我需要插入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];@H_403_3@arrEx由两个项组成,因此它应该是两个字符串.但是UITableViewCell只包含第一个字符串.
在IB中,我将UILabel cell.exsInfoLabel的行数设置为0.
解决方法
试试这个:
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];@H_403_3@