我有一张桌子,当用户点击一个单元格时,一个细节单元格在其下方垂下。我已经弄清楚如何使用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")
我确实在控制台中返回了{{1}},所以我知道它已被调用,但它仍然没有调整单元格高度。
非常感谢任何帮助!提前谢谢。
答案 0 :(得分:1)
heightForRowAtIndexPath
[self.tableView beginUpdates];
[self.tableView endUpdates];
您是否有任何理由不想将单元格添加到后备集合中?最简单的解决方案是将特定项添加到表视图支持数组中,然后在insertRowAtIndexPath
beginUpdates
块内调用endUpdates
。这将触发标准的委托/数据源表视图方法(包括heightForRowAtIndexPath
),因此您可以根据具体的UITableViewCell类(ItemDetailCell
或CustomCell
)返回不同的大小。