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

  • Am_MeAm_Me Membre
    juin 2013 modifié #2

    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


  • BenjoBenjo Membre

    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 ?


  • Am_MeAm_Me Membre


    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

Connectez-vous ou Inscrivez-vous pour répondre.