J'ai un UICollectionView
avec un FLowLayout. La plupart du temps, cela fonctionne comme prévu, mais de temps en temps, l'une des cellules ne s'enroule pas correctement. Par exemple, la cellule qui devrait se trouver dans la première "colonne" de la troisième rangée se trouve en fait à la traîne dans la deuxième rangée et il y a juste un espace vide là où elle devrait se trouver (voir le diagramme ci-dessous). Tout ce que vous pouvez voir de cette cellule rouge est le côté gauche (le reste est coupé) et l'endroit où elle devrait être est vide.
Cela ne se produit pas systématiquement ; ce n'est pas toujours la même ligne. Une fois que cela s'est produit, je peux faire défiler l'écran vers le haut, puis vers le bas, et la cellule s'est réparée d'elle-même. Ou bien, lorsque j'appuie sur la cellule (ce qui me fait passer à la vue suivante via une pression) et que je reviens en arrière, je verrai la cellule dans une position incorrecte, puis elle passera à la position correcte.
La vitesse de défilement semble faciliter la reproduction du problème. Lorsque je fais défiler le texte lentement, je peux encore voir la cellule dans la mauvaise position de temps en temps, mais elle revient immédiatement à la bonne position.
Le problème a commencé lorsque j'ai ajouté les inserts des sections. Auparavant, les cellules étaient presque au même niveau que les limites de la collection (peu ou pas d'inserts) et je n'avais pas remarqué le problème. Mais cela signifiait que les parties droite et gauche de la vue de la collection étaient vides. En d'autres termes, il était impossible de faire défiler les cellules. De plus, la barre de défilement n'était pas affleurante à droite.
Je peux faire en sorte que le problème se produise à la fois sur le simulateur et sur un iPad 3.
Je suppose que le problème se produit à cause des inserts des sections gauche et droite... Mais si la valeur est erronée, alors je m'attendrais à ce que le comportement soit cohérent. Je me demande si ce n'est pas un bug d'Apple ? Ou peut-être est-ce dû à une accumulation d'inserts ou quelque chose de similaire.
Suivi : J'ai utilisé cette réponse sous Nick depuis plus de 2 ans maintenant sans aucun problème (au cas où les gens se demandent s'il y a des trous dans cette réponse - je n'en ai pas encore trouvé). Bien joué Nick.