hinzufügen habe ich eine UICollectionView
in einem meiner viewcontroller
. Meine Sammlungsansicht verwendet eine Unterklasse von UICollectionViewLayout
(benutzerdefiniert) zum Layout der Zellen. Als erstes wähle ich Layout als Benutzerdefiniert im Dropdown-Menü des Storyboards und die Option zur Auswahl zusätzlicher Ansichten wird entfernt.Wie programm Header auf UICollectionView mit UICollectionViewLayout
Ich habe versucht, dass programmatisch tun, wie unten gezeigt, aber keiner der Delegatmethoden genannt bekommen.
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
if (kind == UICollectionElementKindSectionHeader) {
UICollectionReusableView *reusableview = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath];
if (reusableview==nil) {
reusableview=[[UICollectionReusableView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
}
UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
label.text=[NSString stringWithFormat:@"Recipe Group #%li", indexPath.section + 1];
[reusableview addSubview:label];
return reusableview;
}
return nil;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section {
CGSize headerSize = CGSizeMake(320, 44);
return headerSize;
}
In meiner viewDidLoad Methode habe ich
[self.collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView"];
Kann jemand mir zeigen, wo ich vermasselt?
haben Sie Delegaten Sammlung Ansicht verwenden? - 'collectionView setDelegate:' - 'collectionView setDataSource:' – james075
Ja, die Datenquelle ist gesetzt. Alle anderen Datenquellenmethoden werden aufgerufen. –
Sollte das Etikett nicht jedes Mal hinzufügen. Sie werden mit Etiketten auf Etiketten enden. Muss eine Unterklasse mit der Bezeichnung als Eigenschaft erstellen oder sie in der if-Anweisung festlegen, wenn sie statisch ist. – Sean