为uitableviewcell找到正确的文本高度

时间:2013-04-06 22:07:04

标签: ios uitableview sizewithfont

我有一张显示不同文本的表格,因此我需要相应地调整单元格高度。我使用委托方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
// I ask for my content string and then I want to adjust the cell accordingly:
CGSize maximumSize = CGSizeMake(defaultCell.textLabel.frame.size.width, CGFLOAT_MAX);
GSize neededSize = [contentString sizeWithFont:defaultCell.textLabel.font constrainedToSize:maximumSize lineBreakMode:defaultCell.textLabel.lineBreakMode];
CGFloat cellHeight = neededSize.height +15;
return cellHeight;

默认单元格是故事板的原型单元格。我在viewDidAppear委托方法中初始化它,所以我可以轻松访问我的protoype uitableviewcell,这样我只需要改变我的故事板中的字体。

我遇到的问题是函数sizeWithFont:constrainedToSize:lineBreakMode:没有给我准确的答案。如果下一行中只有几个非常短的单词,则会给出一行太低的结果。

anybode是否知道为什么会这样以及如何避免它?

1 个答案:

答案 0 :(得分:0)

加载视图时以及渲染视图时,单元格宽度可能会有所不同。我在黑暗中拍摄的是你认为正在使用的细胞框架,与被渲染的细胞框架不同。