Error con UICollectionViewCell personalizado

Tuve este problema exacto ayer (ya que la documentation dice que DEBES registrar la class), pero la documentation es inexacta ya que no debes registrarte si hay un prototipo de célula en tu storyboard y le das un identificador.

Si crea un prototipo de UICollectionViewCell en su storyboard y asigna su class de celda personalizada, no es necesario (y es perjudicial si lo hace) registrar la UICollectionViewCell personalizada. Esta es la razón por la que UICollectionView resultante es negro.

Según el post de error, la celda prototipo del guión gráfico no tiene su identificador configurado correctamente (no está configurado en absoluto o no es MediaCell )

Tienes razón al usar la línea

 [self.collectionView registerClass:[MediaCollectionViewCell class] forCellWithReuseIdentifier:@"MediaCell"]; 

ya que esto ayuda a la reutilización celular.

El problema podría ser su método cellForRowAtIndexPath , o su subclass, o la forma en que configuró sus delegates. ¿Puedes publicar el código?

El método de delegado debe ser similar a este:

 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { MediaCollectionViewCell* cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"MediaCell" forIndexPath:indexPath]; // set cell.image return cell; } 

Debe configurar su delegado en su método viewDidLoad con …

 [self.collectionView setDataSource:self]; [self.collectionView setDelegate:self]; 

EDIT: ¿Puede publicar el código para su implementación MediaCollectionViewCell? Hice algo similar, y el mío se parece a esto.

 - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)]; [self.contentView addSubview:self.imageView]; } return self; 

}

En realidad, era un problema relacionado con TabBarController. No estaba mostrando la class correcta dentro, por eso la colecciónView siempre estaba vacía. El código que publiqué aquí estaba funcionando. Gracias a todos por su ayuda.