ios iphone uicollectionview xib uicollectionviewcell

ios - Crear la subclase UICollectionViewCell con xib



iphone (2)

UICollectionViewCell crear una subclase UICollectionViewCell con un xib vinculado, tengo que hacer esto: he creado un nuevo archivo xib y he agregado un UICollectionViewCell en él, luego he creado este archivo de subclase:

@interface MyCell : UICollectionViewCell @property (weak, nonatomic) IBOutlet UILabel *label; @end

También he vinculado en la clase personalizada del propietario del archivo la clase MyCell en el constructor de interfaz, y he agregado un UILabel , luego en mi UICollectionView viewDidLoad hago esto:

[self.collectionView registerClass:[MyCell class] forCellWithReuseIdentifier:@"MyCell"]; UINib *cellNib = [UINib nibWithNibName:@"MyCell" bundle:nil]; [self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"MyCell"];

Además de en esto:

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath { MyCell *cell = (MyCell*)[cv dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath]; cell.label.text = @"Cell Text"; return cell; }

Sin embargo, esto no funciona, recibo este error:

*** Terminating app due to uncaught exception ''NSUnknownKeyException'', reason: ''[<NSObject 0x907eca0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key label.''

¿Qué hice mal? ¿Cómo puedo conectar una subclase UICollectionViewCell a un xib y mostrarla en un UICollectionView ?

EDITAR:

tengo hacer esto:

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath { NSString *identifier = @"MyCell"; static BOOL nibMyCellloaded = NO; if(!nibMyCellloaded) { UINib *nib = [UINib nibWithNibName:@"MyCell" bundle: nil]; [cv registerNib:nib forCellWithReuseIdentifier:identifier]; nibMyCellloaded = YES; } MyCell *cell = (MyCell*)[cv dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath]; cell.labelCell.text = @"Text"; return cell; }


Asegúrese de que la celda del archivo .xib sepa cuál es el tipo de la celda.

Seleccione la celda en su constructor de interfaz

y luego en el inspector de identidad

Posteriormente asocie sus etiquetas con sus propiedades. (Creo que ya lo hiciste)

Entonces recomendaría verificar si ya cargó el archivo .xib en su método cellForItemAtIndexPath:

NSString *identifier = @"MyCell"; static BOOL nibMyCellloaded = NO; if(!nibMyCellloaded) { UINib *nib = [UINib nibWithNibName:@"MyCell" bundle: nil]; [cv registerNib:nib forCellWithReuseIdentifier:identifier]; nibMyCellloaded = YES; }