iOS Cellules auto-calibrantes


Exemple

Dans iOS 8, Apple a introduit la cellule auto-dimensionnante. Disposez explicitement vos UITableViewCells avec Autolayout et UITableView s'occupe du reste pour vous. Hauteur de la ligne est calculée automatiquement, par défaut rowHeight valeur est UITableViewAutomaticDimension.

UITableView propriété estimatedRowHeight est utilisé lorsque la cellule d' auto-calibrage calcule.

Lorsque vous créez une cellule de vue de table à redimensionnement automatique, vous devez définir cette propriété et utiliser des contraintes pour définir la taille de la cellule.

- Apple, Documentation UITableView

self.tableView.estimatedRowHeight = 44.0

Notez que la propriété heightForRowAtIndexPath du délégué heightForRowAtIndexPath est inutile si vous souhaitez avoir une hauteur dynamique pour toutes les cellules. Définissez simplement la propriété ci-dessus si nécessaire et avant de recharger ou de charger la vue de table. Cependant, vous pouvez définir la hauteur de cellules spécifiques tout en ayant d'autres dynamiques via la fonction suivante:

Rapide

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

Objectif c

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