自我调整单元格

在 iOS 8 中,Apple 推出了自定尺寸单元。使用 Autolayout 显式设置 UITableViewCells,UITableView 为你完成剩下的工作。行高自动计算,默认情况下 rowHeight 值为 UITableViewAutomaticDimension。

UITableView 属性 estimatedRowHeight 用于计算自调整单元格时。

创建自定义表视图单元格时,需要设置此属性并使用约束来定义单元格的大小。

- Apple,UITableView 文档

self.tableView.estimatedRowHeight = 44.0

请注意,如果要为所有单元格设置动态高度,则不需要 tableView 的委托的 heightForRowAtIndexPath 。只需在必要时以及重新加载或加载表视图之前设置上述属性。但是,你可以通过以下功能设置特定单元格的高度,同时使其他单元格具有动态:

迅速

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    switch indexPath.section {
    case 1:
        return 60
    default:
        return UITableViewAutomaticDimension
    }
}

Objective-C

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  switch (indexPath.section) {
      case 1:
        return 60;
      default:
        return UITableViewAutomaticDimension;
    }  
}