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 .
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];