web-dev-qa-db-fra.com

uitableViewcell height ... comment le personnaliser?

Est-il possible de modifier la hauteur d'une seule cellule dans une vue groupée?
J'ai une vue en tableau avec 2 sections de 3 et 2 rangées ... Je changerais la hauteur de la rangée de la deuxième rangée de la deuxième section ...

Comment puis-je faire ceci?
Merci!

16
matteodv

Vous pouvez regarder cette méthode:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

Dans votre cas, le code devrait ressembler à:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
   if (indexPath.section == 1 && indexPath.row == 1) {
      return SPECIAL_HEIGHT;
   }
   return NORMAL_HEIGHT;
}

Vous pouvez chercher plus de détails sur la méthode ici

53
vodkhang

Dans iOS 8 et les versions ultérieures, vous pouvez utiliser la cellule Vue dynamique du tableau Hauteur.

L'utilisation de cette fonctionnalité UITableviewCell tire son hauteur de son contenu et nous n'avons pas besoin d'écrire heightForRowAtIndexPath

Tout ce que je dois faire dans viewDidLoad ()

tableView.estimatedRowHeight = 44.0;
tableView.rowHeight = UITableViewAutomaticDimension;

Si cell contient uilabel. puis appliquez des contraintes à uilabel 

 enter image description here

Assurez-vous de changer Label --Lines-- en 0

 enter image description here

La cellule grandira automatiquement avec le contenu de uilabel:

 enter image description here

5
Irfan
1
jlehr

Jettes un coup d'oeil à 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

Pour le chemin d'indexation, il suffit de vérifier quelle ligne et quelle section et d'ajuster la hauteur en conséquence

0
Liam