2014-06-30 12 views
8

Otrzymuję potwierdzenie podczas usuwania pojedynczego UICollecitonViewCell z UICollectionView.Jak usunąć jedyną komórkę z UICollectionView z animacją (deleteItemsAtIndexPaths)?

Warunek wstępny: Mam jedną komórkę (gdy mam dwie lub więcej komórek, usunięcie działa dobrze).

Oto kod:

NSIndexPath *ip = [_photosCollectionView indexPathForCell:cell]; 

    [_datasource removeItemAtIndex:ip.item]; 

    [_photosCollectionView deleteItemsAtIndexPaths:@[ip]]; // the assertion is raised 

Oto tekst twierdzenie:

NSInternalInconsistencyException: attempt to delete item 0 from section 0 which only contains 0 items before the update 

Dość dziwny problem, ponieważ działa na 2, 3 lub więcej komórek, ale kiedy usunąć pojedynczy komórka, zawiedzie.

Wszelkie pomysły, co jest nie tak, jak obejść ten problem?

Odpowiedz

11

Dzięki podobnych pytań i odpowiedzi na SO, znalazłem rozwiązanie do korzystania performBatchUpdates:

[_photosCollectionView performBatchUpdates:^ { 
    [_datasource removeItemAtIndex:ip.item]; 
    [_photosCollectionView deleteItemsAtIndexPaths:@[ip]]; // no assertion now 
} completion:nil]; 
Powiązane problemy