我有一个自定义表格单元格,其中包含许多UILabel.在运行时,我正在调整标签的高度以适应其内容sizeWithFont:constrainedToSize:lineBreakMode:并相应地重新定位它们.单元格中的最后一个标签包含大量文本,导致它换行,我有一个非常奇怪的问题.尽管sizeWithFont调用返回了正确的大小,并且我将UILabel的帧设置为该高度,但它会缩短几行.这个截图说明了我在说什么:

在此示例中,整个文本块的高度应为90(在Interface Builder中检查),这是从中返回的sizeWithFont.它也是UILabel框架设置的高度,我通过记录以及停止执行和检查值来验证.但是,正如您所看到的,尽管它正确地为它分配了空间,但它显然没有绘制完整的90像素高("编辑"上方的细黑线是表格单元格边框).我完全感到困惑.如果有人能够提供一些有关它为何如此表现的见解,我将非常感激.
如果您能告诉我如何根据UILabel的高度设置UITableViewCell的高度,我将非常感激.
我目前设置UILabel高度的代码是:
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
           cell.textLabel.numberOfLines = 0;
            cell.textLabel.text = [self getItemForKey:kSummary];
            cell.textLabel.font = [UIFont systemFontOfSize:15];
            cell.textLabel.textColor = [UIColor colorWithRed:54.0f/255.0f green:54.0f/255.0f blue:54.0f/255.0f alpha:1.0f];
            CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
            CGSize labelSize = [[cell.textLabel text] sizeWithFont:[cell.textLabel font] constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
            cell.textLabel.frame = CGRectMake( 0, 0, 280, labelSize.height);