Ich möchte, dass meine Abschnitte in der UICollectionView
einen 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
UICollectionReusableView
dafür erstellt - Die benutzerdefinierte Klasse wurde der Klasse im Storyboard zugewiesen.
- Setzen Sie ein
ImageView
am Header-Zubehör - machte einen Ausgang für die
ImageView
an der benutzerdefinierten Klasse in der.h
Datei - 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 == UICollectionElementKindSectionHeader
anstelle des Inhalts der Zeichenfolgen vergleichen , die Sie wahrscheinlich[kind isEqualToString: UICollectionElementKindSectionHeader]
stattdessen verwenden möchten .