Accéder au contenu principal

Articles

Affichage des articles du mai, 2020

cellForItemAtIndexPath return nil

Dans ma dernière application, comme d'habitude, j'affiche un UIAlertController lorsque l'on tape sur une cellule d'un UICollectionView. J'utilise l'événement didSelectItemAtIndexPath qui fournit l'indexPath de la cellule tapée. Pour afficher le menu, je dois donner la vue à l'origine du menu et sa position. Très bien... j'utilise cellForItemAtIndexPath pour récupérer la cellule... Mais catastrophe la fonction retourne Nil ! Selon la doc Apple, elle ne le devrait pas, cellForItemAtIndexPath retourne Nil si la cellule n'existe pas ou n'est pas visible mais nous venons de la taper. La solution est de faire précéder la demande de cellule par un layoutIfNeeded.         [ collection layoutIfNeeded ];         UICollectionViewCell *cell  = [ collection   cellForItemAtIndexPath :indexPath]; Jusque là, j'avais utilisé cellForItemAtIndexPath sans soucis dans une vingtaine d'application. Je n'ai pas trouvé la raison de