2014-06-30 6 views
8

Ich bekomme eine Bestätigung beim Löschen einer einzelnen UICollecitonViewCell von UICollectionView.Wie lösche ich die einzige Zelle aus UICollectionView mit Animation (deleteItemsAtIndexPaths)?

Voraussetzung: Ich habe eine einzelne Zelle (wenn ich zwei oder mehr Zellen habe, funktioniert die Löschung gut). Hier

ist der Code:

NSIndexPath *ip = [_photosCollectionView indexPathForCell:cell]; 

    [_datasource removeItemAtIndex:ip.item]; 

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

Hier ist die Behauptung, Text:

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

Ganz seltsame Frage, weil es für 2, 3 oder mehr Zellen funktioniert, aber wenn ich eine einzelne löschen Zelle, es schlägt fehl.

Irgendwelche Ideen, was ist falsch, wie um dieses Problem zu umgehen?

Antwort

11

Dank ähnliche Fragen und Antworten auf SO gefunden, eine Lösung performBatchUpdates zu verwenden:

[_photosCollectionView performBatchUpdates:^ { 
    [_datasource removeItemAtIndex:ip.item]; 
    [_photosCollectionView deleteItemsAtIndexPaths:@[ip]]; // no assertion now 
} completion:nil]; 
Verwandte Themen