4

10 個のセクションを含む UICollectionView があり、各セクションには 2 つのセルがあります。セルを削除しようとしていますが、これを取得しています:

The number of sections contained in the collection view after the update (2) must be equal to the number of sections contained in the collection view before the update (2)

これは私が削除する方法です:

NSUInteger arrayLength = 1;
    NSUInteger integerArray[] = {0,0};
    NSIndexPath *aPath = [[NSIndexPath alloc] initWithIndexes:integerArray length:arrayLength];
    [self.collectionFavs deleteItemsAtIndexPaths:[NSArray arrayWithObject:aPath]];

セルまたはセルを含むセクションを削除したいだけです。私の間違いは何ですか?

4

1 に答える 1

3

データソース配列から要素を削除する必要があります。セルを削除する前にメソッドが 2 を返す場合、削除後は 1 を返す必要があります

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    if (notdeleted)
        return 2;
    else
        return 1;
}

実際、このメソッドで [array count] を返す場合は、-deleteItemsAtIndexPaths を呼び出す前に、配列から 1 つのオブジェクトを削除する必要があります。

NSUInteger integerArray[] = {0,0};
NSIndexPath *aPath = [[NSIndexPath alloc] initWithIndexes:integerArray length:arrayLength];
[array removeObjectAtIndex:0];
[self.collectionFavs deleteItemsAtIndexPaths:[NSArray arrayWithObject:aPath]];
于 2013-10-07T11:30:15.160 に答える