W moim projekcie używam UICollectionView do wyświetlania siatki ikon.
Użytkownik może zmienić kolejność, klikając podzieloną na segmenty kontrolkę, która wywołuje pobieranie z danych podstawowych za pomocą innego NSSortDescriptor.
Ilość danych jest zawsze taka sama, po prostu znajdują się w różnych sekcjach / wierszach:
- (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];
}
Problem polega na tym, że reloadData nie animuje zmiany, UICollectionView po prostu wyskakuje z nowymi danymi.
Czy powinienem śledzić, w którym indexPath komórka była przed i po zmianie, i użyć [self.collectionView moveItemAtIndexPath: toIndexPath:], aby wykonać animację zmiany, czy jest lepsza metoda?
Nie interesowałem się zbytnio podklasą collectionViews, więc każda pomoc będzie świetna ...
Dzięki, Bill.
reloadData
wywołanie w blok animacji?