Quiero que mis secciones en el UICollectionView
tengan un encabezado con una imagen.
He seguido estos pasos:
- en el guión gráfico, asigné un encabezado como accesorio para mi
UICollectionView
- le dio un identificador
- creó una subclase de
UICollectionReusableView
para ello - asignó la clase personalizada a la clase en el guión gráfico.
- poner un
ImageView
accesorio en el encabezado - hizo una salida para la
ImageView
clase personalizada en el.h
archivo - Implementó lo siguiente en
viewDidLoad
:
[self.collectionView registerClass:[ScheduleHeaderView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:headerIdentifier];
-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
UICollectionReusableView *reusableview = nil;
if (kind == UICollectionElementKindSectionHeader)
{
ScheduleHeaderView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:headerIdentifier forIndexPath:indexPath];
headerView.headerImageView.image = [UIImage imageNamed:@"blah.png"];
reusableview = headerView;
}
return reusableview;
}
Sé que los métodos de fuente de datos y delegado están funcionando porque puedo ver todas las celdas y sus secciones. Sin embargo, no tengo mis encabezados. Puse un punto de interrupción en el método anterior y nunca se llama.
¿Qué estoy haciendo mal?
kind == UICollectionElementKindSectionHeader
lugar del contenido de las cadenas, probablemente desee utilizar[kind isEqualToString: UICollectionElementKindSectionHeader]
en su lugar.