UICollectionView infinite scroll: reutiliza routes de índice y borra contenido

Usando la respuesta de una pregunta anterior , hice un desplazamiento infinito. Sin embargo, tengo un problema al desplazarme.

Parece que por un milisegundo, el UICollectionView (o quizás el UIScrollView , en UICollectionView ) piensa que las células que se muestran ya no son visibles, por lo tanto, reutiliza las celdas para nuevas celdas. Esto lleva a que las celdas se usen doblemente al desplazarse. La razón por la que creo que esta es la causa de mi problema se debe a que el "truco" que se utiliza para poder desplazarse infinitamente es restablecer el contentOffset de la UIScollView .

Las celdas de mi UICollectionView contienen una image de background que se descarga de forma asíncrona (de la que se obtiene del caching) utilizando MKNetworkKit . Uno de los otros efectos secundarios es que cuando se desplaza una vista de "longitud de pantalla" en una fila, la pantalla se trunca. Casi como si ocurriera una reloadData en el UIScrollView , sin embargo, el código no recarga los datos en absoluto.

Mi pregunta es: ¿cómo puedo evitar que UICollectionView reutilice las celdas visibles y trunde la vista de forma repentina?

Tiene 2 identificadores de reutilización. Cuando restableces el contenido de contentOffset entre ellos.

Parece que he sido visto reutilizar las células visibles cuando gire el dispositivo. Estaba en la pantalla de relleno con imágenes de la búsqueda de imágenes web y la dimensión fija utilizada para rellenar con precisión los límites de UICollectionView para el retrato y el paisaje. Pero al estirar las imágenes se pierde el tamaño, puse un poco, y vi que se reutilizaban o algunas celdas más cuando se giraban (también se volvían a cargar los datos). Lo resuelvo con el cálculo del tamaño actual de la image justo antes de que ocurra la recarga (en collectionView: numberOfItemsInSection 🙂 a partir de la cantidad de imágenes que quiero. El ajuste preciso de la image me impide la carga adicional y la reutilización.