CollectionViewCell et bouton ajouter
Bonjour à tous !
J'ai actuellement un problème avec ma collectionView dans laquelle j'ai ajouté un cellule d'ajout. Lorsqu'on clique dessus, cela ajoute une cellule. J'ai configuré cette cellule de sorte à se qu'elle n'affiche qu'une image "Ajouter" et non une couleur comme le font les autres cellules. Seulement lorsque je commence à ajouter plusieurs cellules, l'image d'ajout s'affiche sur la première cellule et la dernière, alors qu'elle ne devrait s'afficher que sur la dernière. Voici mon code pour faire cela :
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return 1;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return listeCouleur.count + 1;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
static NSString *identifiant = @identifiant;
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifiant forIndexPath:indexPath];
// Configuration de la cellule
if (indexPath.row == listeCouleur.count) {
UIImageView *ajouter = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
ajouter.image = [UIImage imageNamed:@Ajouter];
[cell addSubview:ajouter];
}
else {
Couleur *couleur = [listeCouleur objectAtIndex:indexPath.item];
cell.contentView.backgroundColor = [UIColor colorWithRed:couleur.rouge.floatValue / 255 green:couleur.vert.floatValue / 255 blue:couleur.bleu.floatValue / 255 alpha:couleur.alpha.floatValue / 1];
}
return cell;
}
J'ai essayé de loguer indexPath et le count de mon dataSource et j'obtiens ceci : 2013-06-02 19:42:49.508 Couleur[16392:c07] IndexPath : 0 et count : 0
2013-06-02 19:42:49.526 Couleur[16392:c07] IndexPath : 0 et count : 1
Je ne vois vraiment pas ce qu'il ne va pas dans mon code et pourquoi mon count est à 0. Quelqu'un a-t-il une idée sur le problème ?
Merci d'avance !
Réponses
Je crois avoir trouve pas sur, au demarrage si tu veux a l'intialisation le listCouleur.count=0 et donc a la creation de la premiere cellule il va rentrer dedans
Essaye de mettre un breakpoint dans le if (indexPath.row == listeCouleur.count) histoire de voir quand est-ce qu'il rentre dedans
MAJ : Met un breakpoint et si je dis pas de bêtise quand tu démarre l'appli il devrai rentrer dans le if pas sur
J'ai mis un breakpoint et oui au démarrage de l'application il entre bien dans le if. Et comment faire pour qu'il n'entre pas dans le if à l'initialisation ?
Alors ca ne je suis pas le mieux placé pour te le dire en espérant que quelqu'un te réponde mais je vais méditer dessus