Modifier le contenu UICollectionViewCell et la disposition des plumes en fonction des données

J'ai un UICollectionView qui affiche de nombreuses UICollectionViewCells que j'ai sous-classées comme CardCell. Je passe la variable "type" au CardCell dans - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath Je veux que la class CardCell puisse charger un file Nib différent selon le type qui est passé in. Les différents types doivent avoir des dispositions différentes.

Le problème est que je ne peux pas savoir où changer ceci dans mon CardCell.m. J'ai essayé d'utiliser - (void)prepareForReuse mais cela n'appelle pas à less que l'user ne défile.

Vous devez save chaque file nib dont vous avez besoin dans viewDidLoad, quelque chose comme ça (en substituant les noms corrects pour le file nib et l'identifiant):

 [self.collectionView registerNib:[UINib nibWithNibName:@"RDCell" bundle:nil] forCellWithReuseIdentifier:@"FirstType"]; 

Ensuite, dans itemForRowAtIndexPath, testez le type et renvoyez le type de cellule correct:

  - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { if (type = @"firstType") { FirstCell *cell = (FirstCell *) [collectionView dequeueReusableCellWithReuseIdentifier:@"FirstType" forIndexPath:indexPath]; return cell; }else{ SecondCell *cell = (SecondCell *) [collectionView dequeueReusableCellWithReuseIdentifier:@"SecondType" forIndexPath:indexPath]; cell.whatever ..... return cell; } }