我无法在一个自定义的UITableView细胞显示多行的UILabel。

我目前使用此来计算电池的两个高度...

NSString *cellText = [howtoSection objectAtIndex:row];
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:15.0];
CGSize constraintSize = CGSizeMake(260.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

return labelSize.height + 20;

...这是用于在标签本身。

// Calc the height
NSString *cellText = [howtoSection objectAtIndex:row];
CGSize constraintSize = CGSizeMake(260.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cell.textLabel.font constrainedToSize:constraintSize lineBreakMode:cell.textLabel.lineBreakMode];

// Create the label frame
CGRect newFrame = cell.contentLabel.frame;
newFrame.size.height = labelSize.height;
cell.contentLabel.frame = newFrame;

[cell.contentLabel setText:[howtoSection objectAtIndex:row]];

一切工作按计划除了标签被推向下并向外细胞自身。如果不是这种明显的上边距一切将适合。

下面是我所看到的在模拟器...

的图片的链接

iPhone渲染错误

这里任何帮助,将不胜感激。

有帮助吗?

解决方案

我不明白你在你展示的代码中设置cell.contentLabel.font

另外,根据标签尺寸计算使用cell.textLabel.font计算其大小,但使用contentLabel可变渲染。

有可能你用不同的字体比计算渲染?

其他提示

你是如何增加您的标签的内容查看?它看起来像原来的定位是错误的,因为高度看起来是正确计算。如果您注释掉指定新框架,是在正确的位置的标签吗?我的赌注是,事实并非如此。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top