9

我有一个带有静态单元格的 UITableView,我试图在满足条件时更改单元格的高度。条件得到满足,但单元格高度不会改变。

我正在使用的代码是

[self.tableView setRowHeight:10];

self.tableView rowHeight = 10;

这些都不会改变单元格的行高是否有另一种方法来改变它们?

4

3 回答 3

18

您需要在 tableview 的 .m 中实现以下委托方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return customTableCellHeight;
}

然后改变customTableCellHeight的值:

if (condition) {
    customTableCellHeight = 80; // or whatever
}

当您的表格单元格高度需要更改时(例如条件更改时,您需要调用

 [self.tableView reloadData]; //This calls heightForRowAtIndexPath for all cells
于 2012-06-23T20:46:18.977 回答
1

你可以将它用于tableview的所有行

override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
      return 100
    }
于 2015-10-09T03:05:23.823 回答
0

您可以创建具有文本高度的动态单元格,然后您可以在表格视图中设置静态和动态单元格

这是带有文本的动态单元格的链接 如何在 UITableView 静态单元格中动态更改单元格高度

于 2016-02-19T09:42:26.353 回答