2013-01-12 6 views

Antwort

22

Nach dem Lesen der Dokumentation bin ich mir nicht sicher, ob ich eine einzelne Zusatzansicht neu laden soll, aber Sie können reloadSections: verwenden, um einen oder mehrere Abschnitte in der UICollectionView zu aktualisieren. (documentation) Also, wenn ein Abschnitt Header aktualisiert werden muss, können Sie anrufen:

Objective-C:

[self.collectionView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 3)]]; 

Swift:

- (UICollectionReusableView *)collectionView: (UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { 

     //Place logic for handling update here... 
} 
+0

Sah viele Antworten, dies funktionierte am besten für mich, wenn die Collectionview von einem NSFetchedResultsController unterstützt wurde. Danke – migs647

+0

@Vitalii, siehe meine Revision für bessere Treue zum Ziel-c-Code (mit einem Bereich anstelle eines Arrays). Außerdem ist collectionView in 'UICollectionViewFlowLayout' optional. –

5
:

self.collectionView?.reloadSections(IndexSet(0 ..< 3)) 

Welche nennen geschieht

Wenn Sie das Layout oder die Größe der Zusatzansicht vom Controller aus ändern möchten, verwenden Sie [self.collectionView.collectionViewLayout invalidateLayout] .Wenn Sie nur die Zusatzansicht aktualisieren möchten, verwenden Sie [supplementaryView setNeedsDisplay]. Verwenden Sie beide, wenn die Zusatzansicht komplex ist und/oder ihre Abmessungen ändert.

Verwandte Themen