有没有办法在它的组件加载之后但在它显示之前设置单元的高度?

时间:2017-01-28 10:56:43

标签: ios swift uitableview

我有tableView一个自定义原型cell。此cell有三个labels(标题,价格,详细信息),其中每个CoreData使用heightForRow atIndexPath加载文本,因此它们的高度不是常量。
{cellForRow atIndexPathcellForRow atIndexPath之前执行,因此我只能为所有单元格设置一个高度。但是我需要它们都有不同的尺寸 我尝试过的是tableView.rowHeight我得到了所有标签的高度并将其传递给{{1}}。不幸的是,它将所有单元格设置为具有相同的高度。

我的问题是: 是否有任何方法或方法可以单独设置每个单元格的高度,具体取决于显示内部所有标签所需的空间数量?

2 个答案:

答案 0 :(得分:0)

在视图中尝试加载

    self.tableView.rowHeight = UITableViewAutomaticDimension;

 self.tableView.estimatedRowHeight = 44.0; // set to whatever your "average" cell height is

答案 1 :(得分:0)

我做的是:
- 从头开始​​设置约束(所有项目的边框到单元格的内容视图)
- 按照@ rv7284的建议使用:
tableView.estimatedRowHeight = 150 tableView.rowHeight = UITableViewAutomaticDimension
但有一点不同 - 不是viewDidLoad而是viewWillAppear 所有标签在加载一些文本后都有宽度和高度,并将放在RAM中。