2014-02-25 2 views
1

Мне нужен способ удалить ячейку, которая находится внутри imageview mockCell. Будут оценены любые советы или предложения.Как удалить ячейку внутри изображения?

  //Create mock cell to drag around 
     UICollectionViewCell *cell = [self.collectionView cellForItemAtIndexPath:indexPath]; 
     cell.highlighted = NO; 
     [mockCell removeFromSuperview]; 
     mockCell = [[UIImageView alloc] initWithFrame:cell.frame]; 
     mockCell.image = [self imageFromCell:cell]; 
     mockCenter = mockCell.center; 
     [self.collectionView addSubview:mockCell]; 
     [UIView 
     animateWithDuration:0.3 
     animations:^{ 
      mockCell.transform = CGAffineTransformMakeScale(1.1f, 1.1f); 
     } 
     completion:nil]; 

ответ

0

Я думаю, что вы ищете это:

[self.collectionView deleteItemsAtIndexPaths:@[indexPath]]; 

Вы также должны удалить его из источника данных, когда вы это делаете: это хорошо, чтобы держать DataSource и CollectionView в синхронизации.

0

Вы можете использовать [self.collectionView indexPathsForSelectedItems]; Я сделал это для удаления нескольких изображений за раз.

-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
{ 
if (alertView == deletePhotoConfirmAlert) { 
if (buttonIndex == 1) { 
    // Permission to delete the button is granted here. 
    NSArray *selectedItemsIndexPaths = [self.collectionView indexPathsForSelectedItems]; 

    // Delete the items from the data source. 
    [self deleteItemsFromDataSourceAtIndexPaths:selectedItemsIndexPaths]; 

    // Now delete the items from the collection view. 
    [self.collectionView deleteItemsAtIndexPaths:selectedItemsIndexPaths]; 
} 
} 
} 

// This method is for deleting the selected images from the data source array 
-(void)deleteItemsFromDataSourceAtIndexPaths:(NSArray *)itemPaths 
{ 
NSMutableIndexSet *indexSet = [NSMutableIndexSet indexSet]; 
for (NSIndexPath *itemPath in itemPaths) { 
[indexSet addIndex:itemPath.row]; 

} 
[self.images removeObjectsAtIndexes:indexSet]; // self.images is my data source 

} 

Редактировать этот метод, если вы используете раскадровку

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
NSArray *indexpaths = [self.collectionView indexPathsForSelectedItems]; 
DetailViewController *dest = [segue destinationViewController]; 
dest.imageName = [self.images objectAtIndex:[[indexpaths objectAtIndex:0] row]]; 

} 
Смежные вопросы