UICollectionView animowana zmiana danych

W moim projekcie używam UICollectionView, aby wyświetlić siatkę ikon.

Użytkownik może zmienić kolejność, klikając kontrolkę segmentową, która wywołuje pobieranie z danych podstawowych z innym NSSortDescriptor.

Ilość danych jest zawsze taka sama, kończąc na 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 wyświetla nowe dane.

Czy powinienem śledzić, w którym indexPath była komórka przed i po zmianie, i używać [self.collectionView moveItemAtIndexPath: toIndexPath:], aby wykonać animację zmiany lub czy istnieje lepsza metoda?

Nie zająłem się zbytnio podklasowaniem kolekcjiView, więc każda pomoc będzie świetna ...

Dzięki, Bill.

questionAnswers(8)

yourAnswerToTheQuestion