Cell TextLabel多行不再工作

时间:2013-04-10 08:34:24

标签: iphone ios objective-c uitableview

我有一年前的项目有效。

我编码:

cell.textLabel.numberOfLines = 0; // Multiline

在UITableView单元格中启用多行文本,之前在iOS 5上运行(自2012年初开始未经过测试),现在多行不起作用,并且在单元格中仅显示2行文本。

我是否错过了iOS 6中的某些内容?是否存在导致此问题的某种变化或错误?

编辑:我已经尝试过cell.textLabel.numberOfLines = 5;用于测试目的,它再次显示2行

4 个答案:

答案 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);
}

注意:您需要更改的内容

  1. 这里300是标签的宽度。你可以把你的宽度放在这里
  2. 如果动态添加,您也可以更改X和Y.

答案 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

Alos阅读此How do I create a multiline table cell in iOS?