我有一张桌子,当用户点击一个单元格时,一个详细信息单元会在该表的正下方下降。我已经弄清楚了如何使用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")
的返回,所以我知道它正在被调用,但是它仍然不能调整单元格的高度。任何帮助是极大的赞赏!提前致谢。
最佳答案
heightForRowAtIndexPath
也被称为
[self.tableView beginUpdates];
[self.tableView endUpdates];
有什么理由不想将单元格添加到支持集合中?最简单的解决方案是将特定项目添加到表视图支持数组中,然后在
insertRowAtIndexPath
beginUpdates
块内调用endUpdates
。这将触发标准的委托/数据源表视图方法(包括heightForRowAtIndexPath
),因此您可以根据具体的UITableViewCell类(ItemDetailCell
或CustomCell
)返回不同的大小。关于ios - 使用insertRowAtIndexPath调整UITableViewCell高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14225144/