tutorial source how data collection ios objective-c uicollectionview uicollectionviewcell uicollectionviewlayout

ios - source - uicollectionview header



Célula que desaparece después de desplazarse 2-3 veces en UICollectionView (1)

Me enfrento a un problema extraño al desplazar mi UICollectionView . Muestra una vista en blanco sin celdas.

Extraña extrañamente mi celda o quita mi celular, no sé, pero no puedo encontrar ninguna solución.

He intentado estas soluciones desde SO:

Primero: UICollectionViewFlowLayout crear una clase personalizada de UICollectionViewFlowLayout y UICollectionViewFlowLayout instrucciones con todos los métodos diferentes, pero no UICollectionViewFlowLayout resolver mi problema.

2do: intenté el método a continuación para volver a atribuir y recalcular el tamaño de mi celda:

-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds { return YES; }

Enlaces que seguí:

Que1: desaparece la celda de UICollectionView

Que2: los elementos UICollectionView desaparecen al desplazarse con mi propia subclase UICollectionViewFlowLayout

Por favor, guíame qué está mal con la colección simple con celda personalizada.

Imagen de referencia :

Antes de desplazarse:

Después del desplazamiento:


Aquí estoy respondiendo mi propia pregunta.

Como estoy estancado desde los últimos 2 días para este problema, espero que alguien reciba ayuda si alguien tiene el mismo problema que yo.

Como estoy usando CollectionViewController y agrego esa vista de Controller a mi controlador actual usando, por lo que desaparece mi celda de vista de colección.

Motivo: debido a que ARC lanzó esa conexión de delegate y de datasource y esa vista colectiva no puede obtener la celda mientras estoy desplazándome de arriba a abajo.

Solución:

Resuelvo este problema de 2 formas.

Primero: Crear ese CollectionViewController en mi VC actual que no esté en la clase Service & JSON Parser debido a la pérdida de conexión delegate & datasource .

La parte más importante en el siguiente código es addChildViewController ya que no liberará la conexión de delegado y funciona como se espera.

UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; CardListViewController *objCardListViewController = [mainStoryBoard instantiateViewControllerWithIdentifier:@"CardListViewController"]; objCardListViewController.view.frame = CGRectMake(0, 0,self.cardMainView.frame.size.width, self.cardMainView.frame.size.height); [self.cardMainView addSubview:objCardListViewController.view]; [self addChildViewController:objCardListViewController];

pero según mi requerimiento, necesitaba esta vista de colección en muchos lugares, así que necesito generalizar esta vista de colección.

Así que voy por 2nd Way, que es ContainerView con add child controller y conecto este CollectionViewController con vista de contenedor para poder usarlo en tantos lugares donde necesite esta lista.

Extraño pero cierto.

Espero que esto ayude a alguien si enfrenta el mismo problema.

Gracias y Feliz Codificación.