Bonjour,
Je veux récupérer un accessibilityIdentifier de chacune de mes cellules de UICollectionView.
Pour cela, j'effectue les traitements suivants :
-dans la fonction cellForItemAtIndexPath, Je crée une cellule "custom" (héritant de UICollectionViewCell pour lui ajouter une imageView) avec dequeueReusableCellWithReuseIdentifier
J'ajoute ensuite une ImageView dans ma cellule et je lui donne un identifiant grâce à accessibilityIdentifier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 - (MyCollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ static NSString *identifier = @"MyCell"; MyCollectionViewCell *cell; cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
Quand j'essaie d'accéder à la collectionView existante, je rencontre un problème innatendu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 imageView.image = [UIImage imageNamed: name]; [imageView.image setAccessibilityIdentifier:name]; cell.imageView = currentImageView;
J'obtiens dans tableauDesCellules un tableau de 0 objets, comme si collectionView était vide. Quand j'essaie d'itérer à travers chacune des cellules visibles par contre, plutôt que de sortir de ma boucle immédiatement, je me retrouve avec des cellules d'index désordonnés. Ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part NSArray *tableauDesCellules = [self.collectionView visibleCells];
me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for(MyCollectionViewCell *cell in self.collectionView.visibleCells) { NSIndexPath *indexPath = [self.collectionView indexPathForCell:cell]; NSLog(@"%d",indexPath.item); }
2014-06-30 14:06:16.702 [5685:60b] 38
2014-06-30 14:06:16.702 [5685:60b] 17
2014-06-30 14:06:16.702 [5685:60b] 21
2014-06-30 14:06:16.703 [5685:60b] 0
2014-06-30 14:06:16.703 [5685:60b] 25
2014-06-30 14:06:16.703 [5685:60b] 4
2014-06-30 14:06:16.704 [5685:60b] 29
2014-06-30 14:06:16.704 [5685:60b] 8
2014-06-30 14:06:16.704 [5685:60b] 33
…
Du coup, mes accessibilityIdentifiers ne sont pas ceux attendus. Ce problème me bloque depuis des jours et je ne vois pas comment m'en sortir. Toute aide sera grandement appréciée.
PS : ma fonction cellForItemAtIndexPath effectue une initialisation avec une couleur aléatoire dans chaque cellule. Dois-je y voir un lien ? Si c'est le cas, comment détecter qu'une cellule existe déjà et récupérer son contenu ?
Partager