2014-06-30 67 views
8

我在從UICollectionView刪除單個UICollecitonViewCell時收到了斷言。如何使用動畫(deleteItemsAtIndexPaths)從UICollectionView中刪除唯一的單元格?

前提條件:我有一個單元格(當我有兩個或多個單元格時,刪除效果很好)。

下面是代碼:

NSIndexPath *ip = [_photosCollectionView indexPathForCell:cell]; 

    [_datasource removeItemAtIndex:ip.item]; 

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

這裏是斷言文字:

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

很奇怪的問題,因爲它適用於2,3或更多的細胞,但是當我刪單細胞,它失敗。

任何想法有什麼不對,如何解決這個問題?

回答

11

由於在如此相似的問題和答案,找到了一個解決方案中使用performBatchUpdates

[_photosCollectionView performBatchUpdates:^ { 
    [_datasource removeItemAtIndex:ip.item]; 
    [_photosCollectionView deleteItemsAtIndexPaths:@[ip]]; // no assertion now 
} completion:nil]; 
相關問題