Définition d'un type d'accessoire UITableViewCell sur certaines cellules, mais pas tous
-
23-09-2019 - |
Question
J'ai 8 cellules qui sont en cours de construction dans mon UITableViewController. Je voudrais savoir comment je peux montrer un indicateur d'information sur la 4e et 8e cellules. En ce moment je suis la construction dans
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
bien que je suis pleinement conscient qu'il va ajouter un indicateur de communication à chaque cellule
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
La solution
Utilisez simple instruction if:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
... // do whatever
UITableViewCellAccessoryType accessoryType = UITableViewCellAccessoryNone;
if (indexPath.row == 3 || indexPath.row == 7) {
accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.accessoryType = accessoryType;
... // do whatever
}
Autres conseils
Vous connaissez le indexPath, alors pourquoi ne pas appliquer simplement conditionnellement l'indicateur de divulgation lorsque
if((indexPath.row == 3) || (indexPath.row == 7))
(indexPath.row est 0 basé bien sûr ... le 4ème est 3 et le 8 est 7. Et vous devez utiliser #defines ou d'une autre façon de garder les numéros magiques de là aussi.)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow