2 votes

Comment gérer la création d'un UITableViewCells ?

Auriez-vous l'amabilité de m'aider à répondre à cette question ? Je dois remplir le tableView avec des cellules et j'ai aussi un tableau avec des objets pour remplir les cellules. La question est : comment ne pas créer une cellule si l'objet ne remplit pas certaines conditions ? Je veux dire comment écrire quelque chose comme :

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if(objectIsOk) {
    //create cell
} 
else {
    //do nothing
}
return cell;

NOTE : Je n'ai pas accès à ce tableau d'objets, il me donne un objet par indexPath.row dynamiquement.

2voto

mattjgalloway Points 24217

Je ne sais pas ce que vous entendez par "ne pas créer de cellule". La source de données de votre vue de table est requis pour renvoyer une cellule pour chaque cellForRowAtIndexPath: qui sera appelé pour chaque ligne de chaque section que vous avez indiqué que le tableau contiendra.

Si vous voulez renvoyer une cellule vide, pourquoi ne pas faire quelque chose comme ceci :

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = nil;

    if (objectIsOk) {
        // Create normal cell
    } else {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BlankCell"];
    }

    return cell;
}

Vous pourriez également renvoyer une hauteur de zéro dans le champ heightForRowAtIndexPath: pour donner l'impression qu'il n'est pas là, comme suit :

- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (objectIsOk) {
        return 44.0f;
    } else {
        return 0.0f;
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X