... UICollectionViewのドキュメントを参照する
あなたは達成することができます:
セクションおよびアイテムの挿入、削除、および移動単一のセクションまたはアイテムを挿入、削除、または移動するには、次の手順に従います。
- データソースオブジェクトのデータを更新します。
- コレクションビューの適切なメソッドを呼び出して、セクションまたはアイテムを挿入または削除します。
コレクションビューに変更を通知する前に、データソースを更新することが重要です。コレクションビューメソッドは、データソースに現在正しいデータが含まれていることを前提としています。そうでない場合、コレクションビューは、データソースから間違ったアイテムのセットを受信するか、そこにないアイテムを要求してアプリをクラッシュさせる可能性があります。プログラムで単一のアイテムを追加、削除、または移動すると、コレクションビューのメソッドは、変更を反映するアニメーションを自動的に作成します。ただし、複数の変更を一緒にアニメーション化する場合は、ブロック内ですべての挿入、削除、または移動の呼び出しを実行し、そのブロックをperformBatchUpdates:completion:メソッドに渡す必要があります。次に、バッチ更新プロセスにより、すべての変更が同時にアニメーション化され、挿入、削除、
質問から:たとえば、ジェスチャー認識機能を登録し、次のようにして新しいセルを挿入できます。
の
// in .h
@property (nonatomic, strong) NSMutableArray *data;
// in .m
@synthesize data
//
- (void)ViewDidLoad{
//....
myCollectonView.dataSource = self;
myCollectionView.delegate = self;
data = [[NSMutableArray alloc] initWithObjects:@"0",@"1", @"2" @"3", @"4",
@"5",@"6", @"7", @"8", @"9",
@"10", @"11", @"12", @"13",
@"14", @"15", nil];
UISwipeGestureRecognizer *swipeDown =
[[UISwipeGestureRecognizer alloc]
initWithTarget:self action:@selector(addNewCell:)];
swipeDown.direction = UISwipeGestureRecognizerDirectionDown;
[self.view addGestureRecognizer:swipeDown];
//..
}
-(void)addNewCell:(UISwipeGestureRecognizer *)downGesture {
NSArray *newData = [[NSArray alloc] initWithObjects:@"otherData", nil];
[self.myCollectionView performBatchUpdates:^{
int resultsSize = [self.data count]; //data is the previous array of data
[self.data addObjectsFromArray:newData];
NSMutableArray *arrayWithIndexPaths = [NSMutableArray array];
for (int i = resultsSize; i < resultsSize + newData.count; i++) {
[arrayWithIndexPaths addObject:[NSIndexPath indexPathForRow:i
inSection:0]];
}
[self.myCollectionView insertItemsAtIndexPaths:arrayWithIndexPaths];
} completion:nil];
}