Comment sélectionner un élément/cellule de UICollectionView de code
J'ai mis en place un UICollectionView
dans mon application. Mon problème est que j'ai besoin de sélectionner (comme si l'utilisateur tape sur elle) une cellule programmatically
.
La méthode:
- (void)selectItemAtIndexPath:(NSIndexPath *)indexPath
animated:(BOOL)animated
scrollPosition:(UICollectionViewScrollPosition)scrollPosition
Qui fait partie de la UICollectionView
classe n'est pas ce que j'ai besoin d'appeler, depuis, cette méthode ne fait pas appel:
- (void)collectionView:(UICollectionView *)collectionView
didSelectItemAtIndexPath:(NSIndexPath *)indexPath
Juste définit la selected
propriété de la cellule de YES
;
- Qu'en appelant la méthode vous-même après que vous avez sélectionné votre cellule? Vous pourriez l'appeler [auto collectionView:yourView didSelectItemAtIndexPath:yourIndexPath];
- Oui. l'a obtenu. merci!
- Peut-être que cette réponse vous aidera à stackoverflow.com/questions/13177201/...
- Oui. Merci! Je connaissais la
didSelectItemAtIndexPath
, mais je cherchais une méthode qui ne fait pas partie de laUICollectionView Delegate Protocol
. J'ai pensé à elle. Tout fonctionne très bien maintenant.
Vous devez vous connecter pour publier un commentaire.
Je fais appel
[self collectionView:yourView didSelectItemAtIndexPath:yourIndexPath]
de programmation pour sélectionner une cellule. Mais dans la méthode de la cellule est toujours nul. Cela fonctionne parfaitement lorsque l'utilisateur sélectionne une cellule.collectionView.delegate?.collectionView!(collectionView, didSelectItemAtIndexPath: someIndexPath)
Oui, c'est un bon comportement. Documentation pour
[selectItemAtIndexPath:animated:scrollPosition:]
dit:Tout d'abord, vous avez besoin pour faire de la cellule cible visible, sinon
[yourCollectionView cellForItemAtIndexPath:yourIndexPath]
renvoie toujours zéro.