【发布时间】:2012-08-08 00:46:12
【问题描述】:
我正在尝试创建一个包含 3 个组的分组表视图,每个组都有不同高度的单元格。我在我的 Storyboard 中设置了 3 个具有适当高度的原型单元,并设置了我的 UITableViewController 以返回每行的适当高度。但是由于某种原因,我的所有单元格在屏幕上显示时都只有 1 个像素高。
我已经单步执行了代码,并为每一行返回了正确的高度和单元格。我还验证了每个单元格的框架在返回之前是正确的。然而,调用rectForRowAtIndexPath 会发现每行的rect 只有1 个像素高。
当使用恒定的像元高度时,这个问题就完全消失了。在这种情况下,单元格显示完美,其中一些太短/太高,因为它们应该是可变高度。
有什么想法吗?我想了解在使用heightForRowAtIndexPath 时如何确定每行的矩形。
heightForRowAtIndexPath 的代码:
- (NSInteger)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.section) {
case 0:
return 80.0;
break;
case 1:
return 260.0;
break;
case 2:
return 110.0;
break;
case 3:
return 114.0;
break;
default:
break;
}
return 0;
}
【问题讨论】:
-
你能把
heightForRowAtIndexPath的代码贴出来吗? -
发布您的代码,否则我们将无法提供帮助。
-
刚刚添加了我的代码。注意我也试过只返回一个数字,这会导致同样的问题。例如,如果我将 rowHeight 设置为 55,一切正常,但如果我从 heightForRowAtIndexPath 返回 55,则所有单元格都是 1 像素高。
-
@cezarcp 同意。我已经检查过了,rowHeight 绝对没有在其他任何地方设置。
标签: ios uitableview heightforrowatindexpath