J'ai mis à jour mes applications pour qu'elles fonctionnent sous iOS 7, ce qui se passe bien pour la plupart. J'ai remarqué que dans plus d'une application, le bouton reloadData
méthode d'un UICollectionViewController
ne se comporte pas tout à fait comme avant.
Je vais charger le UICollectionViewController
, remplir le UICollectionView
avec quelques données comme d'habitude. Cela fonctionne très bien la première fois. Toutefois, si je demande de nouvelles données (en remplissant le champ UICollectionViewDataSource
), et ensuite appeler reloadData
il interrogera la source de données pour numberOfItemsInSection
et numberOfSectionsInCollectionView
mais il ne semble pas appeler cellForItemAtIndexPath
le nombre approprié de fois.
Si je modifie le code pour ne recharger qu'une seule section, alors il fonctionnera correctement. Ce n'est pas un problème pour moi de les modifier, mais je ne pense pas que je doive le faire. reloadData
doit recharger toutes les cellules visibles, conformément à la documentation.
Quelqu'un d'autre a vu ça ?
5 votes
Même chose ici, il est dans iOS7GM, il fonctionnait bien avant. J'ai remarqué qu'appeler
reloadData
après que le viewDidAppear semble résoudre le problème, c'est un horrible contournement, et il faut le corriger. J'espère que quelqu'un pourra vous aider.1 votes
J'ai le même problème. Le code fonctionnait bien dans iOS6. Maintenant, il n'appelle pas cellforitematindexpath même s'il renvoie le bon nombre de cellules.
0 votes
Ce problème a-t-il été corrigé dans une version postérieure à la 7.0 ?
0 votes
Je suis toujours confronté à des problèmes liés à cette question.
0 votes
Problème similaire après la modification de [collectionView setFrame] à la volée ; la mise en file d'attente d'une seule cellule et c'est tout, quel que soit le nombre dans la source de données. J'ai essayé tout ce qui est indiqué ici et plus encore, mais je n'arrive pas à le contourner.
0 votes
Je pense que c'est corrigé dans la 7.1.
0 votes
J'ai le même problème dans IOS 9.2, la solution de @jasonIM résout mon problème. Mais dans mon cas, viewWillAppear est suffisamment utile.
0 votes
J'avais également des problèmes avec le fait que reloadData ne mettait pas à jour toutes les cellules affichées même si le nombre d'éléments dans la section avait changé. Ceci avec iOS 9.3. La solution consistait à envoyer de manière asynchrone le rechargement des données sur le thread principal afin qu'il soit exécuté lors de la prochaine boucle d'exécution.