我有一年前的项目有效。
我编码:
cell.textLabel.numberOfLines = 0; // Multiline
在UITableView单元格中启用多行文本,之前在iOS 5上运行(自2012年初开始未经过测试),现在多行不起作用,并且在单元格中仅显示2行文本。
我是否错过了iOS 6中的某些内容?是否存在导致此问题的某种变化或错误?
编辑:我已经尝试过cell.textLabel.numberOfLines = 5;用于测试目的,它再次显示2行
答案 0 :(得分:3)
cell.textLabel.numberOfLines = 0;
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
答案 1 :(得分:1)
在cellForRowAtIndexPath
UILabel *lbl = [[UILabel alloc]init];
lbl.text = @"Your text value";
lbl.numberOfLines = 0;
lbl.lineBreakMode = NSLineBreakByWordWrapping;
//Set frame according to string
CGSize size = [lbl.text sizeWithFont:lbl.font
constrainedToSize:CGSizeMake(300, MAXFLOAT)
lineBreakMode:UILineBreakModeWordWrap];
[lbl setFrame:CGRectMake(0 , 0 , size.width , size.height)];
[cell.contentView addSubview:lbl];
您的heightForRowAtIndexPath
方法应该是这样的
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *value = [listOfData objectAtIndex:indexPath.row];
CGSize boundingSize = CGSizeMake(300, CGFLOAT_MAX);
CGSize stringSize = [value sizeWithFont:[UIFont systemFontOfSize:17.0] constrainedToSize:boundingSize lineBreakMode:UILineBreakModeWordWrap];
return ((stringSize.height>44.00)?stringSize.height:44.00);
}
注意:您需要更改的内容
答案 2 :(得分:1)
iOS 6中不推荐使用UILineBreakModeWordWrap。使用NSLineBreakByWordWrapping
答案 3 :(得分:0)
如果您希望向{。1}}个文字显示多个文字,那么您也可以将cell
放在UILabel
上,并将cell.contentView
用于显示文字多行。
对于EX:
labelName.numberOfLines = 0
上面的代码放在UILabel *lbltitle = [[UILabel alloc]initWithFrame:CGRectMake(10, 0, 270, 35)];
lbltitle.backgroundColor = [UIColor clearColor];
NSString *originalString = @" Indian version of this popular search engine. Search the whole web or only webpages from India. Interfaces offered in English, Hindi, Bengali, Telugu, Marathi";
lbltitle.text= originalString;
lbltitle.font =[UIFont fontWithName:@"Arial-BoldMT" size:16];
lbltitle.textAlignment = UITextAlignmentLeft;
lbltitle.numberOfLines = 0;
lbltitle.textColor=[UIColor blackColor];
[cell.contentView addSubview:lbltitle];
方法之间
cellForRowAtIndexPath