Ich möchte, dass meine Abschnitte in der UICollectionVieweinen Header mit einem Bild haben.
Ich habe diese Schritte befolgt:
- am Storyboard einen Header als Zubehör für meine zugewiesen
UICollectionView - gab ihm eine Kennung
- hat eine Unterklasse
UICollectionReusableViewdafür erstellt - Die benutzerdefinierte Klasse wurde der Klasse im Storyboard zugewiesen.
- Setzen Sie ein
ImageViewam Header-Zubehör - machte einen Ausgang für die
ImageViewan der benutzerdefinierten Klasse in der.hDatei - Implementierte Folgendes bei
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;
}
Ich weiß, dass die Datenquellen- und Delegatenmethoden funktionieren, da ich alle Zellen und ihre Abschnitte sehen kann. Ich habe jedoch keine Header. Ich habe bei der obigen Methode einen Haltepunkt eingefügt, der nie aufgerufen wird.
Was mache ich falsch?
kind == UICollectionElementKindSectionHeaderanstelle des Inhalts der Zeichenfolgen vergleichen , die Sie wahrscheinlich[kind isEqualToString: UICollectionElementKindSectionHeader]stattdessen verwenden möchten .