6

特定のイベントでは、

uicollectionviewのすべてのセルを削除し、新しいセルを追加したい(ネットワーク呼び出しの結果として入力されます)

deleteItemsAtIndexPathsを使用してみました。reloadSections、deleteSections/insertSections。

それらのそれぞれが私のアプリをクラッシュさせました。

以下は私のコードです。

NSMutableArray* indexPathArray = [[NSMutableArray alloc] init];

for(int i=0; i < [self.jsonAlbumImageArray count]; ++i)
{
    NSIndexPath* newPath = [NSIndexPath indexPathForRow:i inSection:0];
    [indexPathArray addObject: newPath];
}

[self.jsonAlbumImageArray removeAllObjects];

if(indexPathArray.count > 0 )
{
    [self.collectionView performBatchUpdates:^{
            [self.collectionView deleteItemsAtIndexPaths:indexPathArray];
        }
    completion: nil];
}

// NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 1)];                                                                                                                                                                                        
// NSIndexSet* indexSet = [NSIndexSet indexSetWithIndex:0];                                                                                                                                                                                                                 
// [self.collectionView reloadSections:indexSet];                                                                                                                                                                                                                           

[self get_IMAGE_LIST_FROM_SERVER];
4

2 に答える 2

5

ええ、ジョナサンが言ったように、あなたがやりたいことは、新しいデータでデータソースを変更し、UICollectionView を単に「更新」または再読み込みすることだと思います。

于 2012-12-17T16:35:43.523 に答える