In meinem Projekt verwende ich UICollectionView, um ein Raster von Symbolen anzuzeigen.
Der Benutzer kann die Reihenfolge ändern, indem er auf ein segmentiertes Steuerelement klickt, das einen Abruf von Kerndaten mit einem anderen NSSortDescriptor aufruft.
Die Datenmenge ist immer gleich und endet nur in verschiedenen Abschnitten / Zeilen:
- (IBAction)sortSegmentedControlChanged:(id)sender {
_fetchedResultsController = nil;
_fetchedResultsController = [self newFetchResultsControllerForSort];
NSError *error;
if (![self.fetchedResultsController performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
[self.collectionView reloadData];
}
Das Problem ist, dass reloadData die Änderung nicht animiert, UICollectionView nur mit den neuen Daten angezeigt wird.
Sollte ich verfolgen, in welchem Indexpfad sich eine Zelle vor und nach der Änderung befand, und [self.collectionView moveItemAtIndexPath: toIndexPath:] verwenden, um die Animation für die Änderung auszuführen, oder gibt es eine bessere Methode?
Ich habe mich nicht viel mit dem Unterklassen von collectionViews beschäftigt, daher ist jede Hilfe großartig ...
Danke, Bill.
reloadData
Aufruf in einen Animationsblock zu packen?