Tengo UICollectionView
un FLowLayout. Funcionará como espero la mayor parte del tiempo, pero de vez en cuando una de las celdas no se ajusta correctamente. Por ejemplo, la celda que debería estar en la primera "columna" de la tercera fila si en realidad está al final de la segunda fila y solo hay un espacio vacío donde debería estar (vea el diagrama a continuación). Todo lo que puede ver de esta celda roja es el lado izquierdo (el resto está cortado) y el lugar donde debería estar está vacío.
Esto no sucede de manera constante; no siempre es la misma fila. Una vez que ha sucedido, puedo desplazarme hacia arriba y luego hacia atrás y la celda se habrá arreglado sola. O, cuando presiono la celda (que me lleva a la siguiente vista presionando) y luego retrocedo, veré la celda en la posición incorrecta y luego saltará a la posición correcta.
La velocidad de desplazamiento parece facilitar la reproducción del problema. Cuando me desplazo lentamente, todavía puedo ver la celda en la posición incorrecta de vez en cuando, pero luego saltará a la posición correcta de inmediato.
El problema comenzó cuando agregué las inserciones de las secciones. Anteriormente, tenía las celdas casi alineadas con los límites de la colección (poco o ningún inserto) y no noté el problema. Pero esto significaba que las partes derecha e izquierda de la vista de colección estaban vacías. Es decir, no se pudo desplazar. Además, la barra de desplazamiento no estaba alineada a la derecha.
Puedo hacer que el problema ocurra tanto en Simulator como en un iPad 3.
Supongo que el problema se debe a las inserciones de las secciones izquierda y derecha ... Pero si el valor es incorrecto, entonces esperaría que el comportamiento fuera consistente. Me pregunto si esto podría ser un error de Apple. O quizás esto se deba a una acumulación de inserciones o algo similar.
Seguimiento : he estado usando esta respuesta a continuación por Nick durante más de 2 años sin ningún problema (en caso de que la gente se pregunte si hay algún agujero en esa respuesta, todavía no he encontrado ninguno). Bien hecho Nick.