2013-04-24 6 views
1

Я показываю изображения на collection view. Я хочу удалить каждый элемент на button click. Теперь я могу удалить элемент на didSelect method.Как удалить элемент из UICollectionView?

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [array removeObjectAtIndex:indexPath.row]; 
    [self.colleVIew deleteItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]]; 
} 

Я кнопку размещены на CollectionCell и может узнать indexpath.rowon click .Но как удалить

-(void)chat:(int)i 
{ 
    NSLog(@"index path%d",i); 
    [array removeObjectAtIndex:i]; // array object is getting removed,how to delete the CollectionviewCell 
} 
+1

попробуйте использовать 'перезагрузить data' или' reloadItemsAtIndexPath' –

ответ

3

Если вы знаете, в разделе, а также:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0]; 
[self.colleVIew deleteItemsAtIndexPaths:[NSArray arrayWithObject:[indexPath]]]; 
+0

, но после того, как я удалить один раз, путь индекс не получает декрементируется .. – 2013-04-24 18:28:53

+0

вы саботировать себя с этим: 'NSLog (@«Индекс пути% D», i); 'Это не indexPath. В лучшем случае находится ** строка **, которую вы хотите удалить. Это нормально, потому что вы жестко кодируете значения строки в значениях, находящихся внутри массива. Вместо этого, получите индекс, получив позицию объекта, например: '[array indexOfObject: theObjectIWantToRemove];' – Peres

+0

, но после перезагрузки коллекции, его ОК. Но анимация ячеек переупорядочивается после удаления не является. , – 2013-04-30 09:21:46

1

Просто reloadData и убедитесь, что ваш array используется в numberOfItemsInSection. Это перезагрузится dataSource.

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section 
{ 
    return [yourArray count]; 
} 

-(void)chat:(int)i 
{ 
    NSLog(@"index path%d",i); 
    [yourArray removeObjectAtIndex:i]; 
    // array object is getting removed,how to delete the CollectionviewCell 
    [self.collectionView reloadData]; 
} 
Смежные вопросы