0

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

- (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 委托方法中对其进行了初始化,因此我可以轻松访问我的原型 uitableviewcell,这样我只需要更改故事板中的字体之类的东西。

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

有没有人知道为什么会这样以及如何避免它?

4

1 回答 1

0

加载视图和渲染视图时,单元格宽度可能会有所不同。我的想法是,您认为正在使用的单元格框架与正在渲染的单元格框架不同。

于 2013-04-06T23:20:12.933 回答