0

我一年前有一个项目有效。

我已经编码:

cell.textLabel.numberOfLines = 0; // Multiline

在 UITableView 单元格中启用多行文本,它之前在 iOS 5 上工作过(自 2012 年初以来未对其进行测试),现在多行不工作,并且在单元格中只显示 2 行文本。

我错过了 iOS 6 中的某些内容吗?是否有某种变化或错误导致了这种情况?

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

4

4 回答 4

3
cell.textLabel.numberOfLines = 0;
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
于 2013-04-10T08:40:12.457 回答
1

UILineBreakModeWordWrap 在 iOS 6 中已弃用。使用 NSLineBreakByWordWrapping

于 2015-04-27T15:16:09.273 回答
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 是 label 的宽度。你可以把你的宽度放在这里
  2. 如果动态添加,您也可以更改 X 和 Y。
于 2013-04-10T08:47:02.373 回答
0

如果你想cell用多个显示你的文本,那么你也可以穿上UILabel,cell.contentView并给出labelName.numberOfLines = 0显示文本锡多行。

对于 EX:

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方法上

if(cell == nil)
{
  cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

  // Put here Label Code  
}

Alos 阅读此如何在 iOS 中创建多行表格单元格?

于 2013-04-10T08:40:03.590 回答