我正在尝试创建一个包含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;
}
答案 0 :(得分:2)
您已宣布tableView:heightForRowAtIndexPath:
返回NSInteger
。
那应该是CGFloat
。
答案 1 :(得分:1)
只是为了增加行的高度。只需在indexpath写一个行高度的方法就可以了。
if (indexpath.section== 0)
return 50;