iOS Células de auto-tamaño


Ejemplo

En iOS 8 Apple introdujo la celda de auto dimensionamiento. Diseñe sus UITableViewCells con Autolayout explícitamente y UITableView se encarga del resto por usted. Altura de la fila se calcula automáticamente, por defecto rowHeight valor es UITableViewAutomaticDimension.

UITableView propiedad estimatedRowHeight se utiliza cuando la auto-dimensionamiento celular está calculando.

Cuando crea una celda de vista de tabla de auto-dimensionamiento, necesita establecer esta propiedad y usar restricciones para definir el tamaño de la celda.

- Apple, Documentación UITableView

self.tableView.estimatedRowHeight = 44.0

Tenga en cuenta que la altura del delegado de heightForRowAtIndexPath es necesaria si desea tener una altura dinámica para todas las celdas. Simplemente configure la propiedad anterior cuando sea necesario y antes de volver a cargar o cargar la vista de tabla. Sin embargo, puede establecer la altura de celdas específicas mientras otras dinámicas se realizan a través de la siguiente función:

Rápido

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

C objetivo

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