自我調整單元格

在 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;
    }  
}