0

我有一个表格,其中,当用户点击一个单元格时,一个详细单元格会在其正下方下降。我已经想出了如何使用insertRowAtIndexPath来实现这一点,但是细节单元格的行高高于正常单元格的行高。我已经尝试过heightForRowAtIndexPath,但这似乎只在初始加载视图(或使用reloadData)时被调用。但是,我不希望将详细信息单元格添加到表格视图的数据中,这消除reloadData了一种可能性,因此heightForRowAtIndexPath. 我确实有一个自定义UITableViewCell子类为ItemDetailCell. 我认为这可能会从情节提要中的关联单元格加载指定的行高,但这似乎不起作用。这就是我尝试的方式cellForRowAtIndexPath

if (indexPath.row == _detailCellIndexPath.row && _detailCellIndexPath) {
    NSLog(@"detailCell");

    ItemDetailCell *detailCell = [tableView dequeueReusableCellWithIdentifier:DetailCellIdentifier forIndexPath:_detailCellIndexPath];

    //customize cell

    return detailCell;
}
else {
    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    //customize cell

    return cell;
}

我确实NSLog(@"detailCell")在控制台中得到了返回,所以我知道它被调用了,但它仍然没有调整单元格的高度。

任何帮助是极大的赞赏!提前致谢。

4

1 回答 1

1

heightForRowAtIndexPath也被称为

[self.tableView beginUpdates];
[self.tableView endUpdates];

您是否有任何理由不想将单元格添加到您的支持集合中?最简单的解决方案是将特定项目添加到您的表视图支持数组,然后在块insertRowAtIndexPath内部进行调用。beginUpdates endUpdates这将触发标准委托/数据源表视图方法(heightForRowAtIndexPath包括),因此您可以根据具体的 UITableViewCell 类(ItemDetailCellCustomCell)返回不同的大小。

于 2013-01-08T23:50:34.357 回答