为什么self.tableview.row高度不能从Storyboard返回高度?

时间:2014-03-17 14:54:54

标签: ios uitableview heightforrowatindexpath

我需要以编程方式设置一行的高度,所有其他行都是在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,这是一个完全错误的值。

1 个答案:

答案 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];
      }
 }