ios objective-c interface-builder uicollectionview infinite-scroll
here

ios - En lugar de UICollectionView se muestra una pantalla negra



objective-c interface-builder (6)

Estoy tratando de UICollectionView el infinitivo desplazamiento UICollectionView ve here . Cosas que me faltaban:

ViewController.h :

@interface ViewController : UIViewController<UICollectionViewDataSource, UICollectionViewDelegate> @end

DataCell.h :

@interface DataCell : UICollectionViewCell @property (nonatomic, strong) UILabel *label; @end

DataCell.m :

#import "DataCell.h" @implementation DataCell -(instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if(self){ self.label = [[UILabel alloc] initWithFrame:self.bounds]; self.autoresizesSubviews = YES; self.label.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); self.label.textAlignment = NSTextAlignmentCenter; self.label.adjustsFontSizeToFitWidth = YES; [self addSubview:self.label]; } return self; } @end

CustomCollectionView.h:

@interface CustomCollectionView : UICollectionView @end

Para todo el proyecto utilicé un guión gráfico y un UIViewController normal. En este controlador de vista agregué un UICollectionView en Interface Builder. Conecté la salida de la vista de colección con mi controlador de vista y configuré la fuente de datos y delegé los métodos nuevamente a mi controlador de vista. También establezco la clase personalizada de UICollectionViewCell y el identificador de reutilización en Interface Builder.

Así que todo debería funcionar pero solo me sale una pantalla negra. ¿Qué me estoy perdiendo? Puedes descargar el proyecto completo here .


Debe establecer manualmente el color de fondo de la vista de colección en el guión gráfico.

Por defecto es negro (aunque no lo muestra en el editor de guión gráfico)


En Swift,

self.label.textColor = UIColor.whiteColor()


Está configurando correctamente el CollectionView, solo que olvidó el color de la etiqueta :)

[self.label setTextColor:[UIColor whiteColor]];

¡Espero eso ayude!


Me ocurrió que tanto la vista de colección como la celda de vista de colección tenían fondos transparentes


Tuve el mismo problema. La pantalla en negro parece ser un indicador de que no hay datos disponibles con vista de colección para mostrar. Intente cambiar el color de fondo de la vista de colección, si ese color cambiado se muestra, la vista de colección está funcionando. Y luego agregue una vista de imagen a la vista de colección con etiqueta (por ejemplo, asigne un valor 100 con el valor de etiqueta para la vista de imagen) y con cellforItemAtIndexPath establezca las imágenes en la vista de imagen. (Puede hacer esto con celdas personalizadas. Pero por ahora, para que funcione la vista de colección, la asignación con etiqueta para la vista de imagen se adapta mejor)

UIImageView * ImageView = (UIImageView *)[cell viewWithTag:100]; ImageView.image = [UIImage imageNamed:[images objectAtIndex:indexPath.row]];


[self.collectionView registerNib:[UINib nibWithNibName:@"ProductCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"ProductCollectionViewCell"]; self.collectionView.backgroundColor = [UIColor clearColor];