UITableView:在构造表之后更改一个单元格的高度约束?

时间:2017-10-17 18:30:19

标签: ios objective-c uitableview

我可能想要一个奇怪的东西,但任务是在UITableView中拉伸最后一个单元格以填充剩余空间。因此,如果表格中只有很少的单元格,那么最后一个单元格将与其余单元格相匹配,直到屏幕底部。

为实现这一目标,我在最后一个单元格的xib中包含了高度约束。 我可以计算出合适的高度并设置常数,但事后我做的并不重要 - setNeedsDisplay()setNeedsLayout()reloadData()reloadRowsAtIndexPaths()等 - 单元格高度为没有改变。

只有当我第二次调用更新代码时,才会调整布局。

任何提示如何立即强制更新单元格?

2 个答案:

答案 0 :(得分:0)

您需要实现以下功能(viewDidLoad很好)。

var estimatedRowHeight = 80 (for example)

// Set automatic dimension on row height.
tableView.rowHeight = UITableViewAutomaticDimension

// Set estimated row height.
tableView.estimatedRowHeight = estimatedRowHeight

删除身高限制,然后使用reloadDatareloadRowsAtIndexPaths()调用您的调整大小。

答案 1 :(得分:0)

您是否尝试过以下方法?检查最后一个indexPath.row的位置,并设置您计算的不同高度。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;