我需要以编程方式设置一行的高度,所有其他行都是在Storyboard中创建的具有不同高度的静态单元格。
在我的代码中,第5个单元格应该是“隐藏”默认值,因此我想将此行的高度设置为0.0。所有其他单元格应该使用Storyboard中的高度,我使用方法tableView:heightForRowAtIndexPath
来设置单元格的高度。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat height = self.tableView.rowHeight;
if (indexPath.row == 4)
{
height = 0.0f;
}
return height;
}
问题是self.tableView.rowHeight
总是以高度返回658
,这是一个完全错误的值。
答案 0 :(得分:0)
如果您实施heightForRowAtIndexPath
,则需要为所有单元格设置一个值,否则您将遇到类似这样的内容。你能做的是以下几点:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.row){
case 4:
return 0;
default:
static NSNumber *height;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCustomCell"];
height = @(cell.bounds.size.height);
return [height floatValue];
}
}