Estoy usando un UICollectionView en mi aplicación con gesto reconocedores en las células individuales que permiten que el usuario se «abra» de la célula para revelar más datos debajo.

El problema es que yo soy volver a cargar los datos en el CollectionView muy a menudo; como la aplicación recibe actualizaciones una vez cada 3 segundos o así. Esto se traduce en un comportamiento no deseado con el collectionview células que están siendo reutilizados, mientras que una célula está en el proceso de que se deslizó.

El usuario va a empezar a deslizar una celda, la aplicación va a recibir una actualización, reloadData, y una celda diferente comenzará a recibir el gesto en su lugar, y comience a deslizarse.

He intentado desactivar la aplicación de las actualizaciones, mientras que la diapositiva que está ocurriendo, pero que causó otras complicaciones dentro de la aplicación, así que me pregunto si hay una manera de desactivar la celda de la reutilización, (voy a tener sólo 20 células max, así que creo que no sería una gran caída en el rendimiento).

Gracias!

Se acaba de llamar reloadData? ¿Qué sucede si usted se acaba de cargar a células específicas, por ejemplo, todos aquellos excepto el que está siendo operado?

OriginalEl autor dKrawczyk | 2012-11-14

2 Comentarios

  1. 3

    ¿Por qué no utilizar un indicador como needsReload y establecer, si hay nuevos datos disponibles. Después de una diapositiva de verificación para que la bandera y volver a cargar el collectionView, si es necesario? No es este trabajo?

    Si usted no desea que la célula de la reutilización, sólo tiene que utilizar un defecto scrollView y poner todos sus puntos de vista en ella!?

    OriginalEl autor calimarkus

  2. -5

    La desactivación de la reutilización es simple. Simplemente no usar la dequeueReusableCell método.
    En lugar de sólo alloc, init sus células. Yo tendría cuidado de la memoria y el rendimiento de las implicaciones de hacerlo, aunque…

    He intentado eso, me llena de una matriz con sin embargo muchas de las células que yo necesitaba, y en cellForRowAtIndexPath pongo: MyCustomCell *cell=[self.arrayOfCells objectAtIndex:indexPath.row]; Pero la aplicación se bloquea con el siguiente error. *** Assertion failure in -[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:]
    Se puede mostrar el mensaje de error completa?
    *** Assertion failure in -[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:], /SourceCache/UIKit_Sim/UIKit-2372/UICollectionView.m:1138
    ¿Cómo crear la vista de colección de las células? El uso de un archivo nib o puramente en el código? – Tal vez este enlace: stackoverflow.com/questions/13281631/… y mi solución stackoverflow.com/questions/12729612/… ayuda.
    Por qué no hacer algo como: MyCustomCell celulares * = [[MyCustomCell alloc] init]; ??? Usted está tratando de acceder a las células en la vista de colección antes de que hay células en ella. La idea de la cellForRowAtIndexPath método es que se llena la vista.

    OriginalEl autor HackyStack

Dejar respuesta

Please enter your comment!
Please enter your name here