苹果在iOS 8中引入了自动调整大小单元。使用Autolayout显式地布局UITableViewCells,UITableView会为您处理其余的工作。行高是自动计算的,默认rowHeight值为UITableViewAutomaticDimension。
estimatedRowHeight自调整单元格计算时使用UITableView属性。
创建自调整大小的表格视图单元格时,需要设置此属性并使用约束来定义单元格的大小。
-苹果的UITableView文档
self.tableView.estimatedRowHeight = 44.0
请注意,如果要为所有单元格设置动态高度,heightForRowAtIndexPath则不需要tableView的委托。在必要时以及重新加载或加载表格视图之前,只需设置以上属性即可。但是,您可以通过以下功能设置特定单元格的高度,同时使其他单元格动态化:
迅速
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { switchindexPath.section{ case 1: return 60 default: return UITableViewAutomaticDimension } }
目标C
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { switch (indexPath.section) { case 1: return 60; default: return UITableViewAutomaticDimension; } }