Keine Delegiertenmethoden wie UITableviewController für UICollectionViewController bereitgestellt. Wir können das manuell tun, indem wir UICollectionView einen langen Gestenerkenner hinzufügen.
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self
action:@selector(activateDeletionMode:)];
longPress.delegate = self;
[collectionView addGestureRecognizer:longPress];
In LongGesture-Methode Schaltfläche für diese bestimmte Zelle hinzufügen.
- (void)activateDeletionMode:(UILongPressGestureRecognizer *)gr
{
if (gr.state == UIGestureRecognizerStateBegan) {
if (!isDeleteActive) {
NSIndexPath *indexPath = [collectionView indexPathForItemAtPoint:[gr locationInView:collectionView]];
UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
deletedIndexpath = indexPath.row;
[cell addSubview:deleteButton];
[deleteButton bringSubviewToFront:collectionView];
}
}
}
In dieser Schaltfläche Aktion,
- (void)delete:(UIButton *)sender
{
[self.arrPhotos removeObjectAtIndex:deletedIndexpath];
[deleteButton removeFromSuperview];
[collectionView reloadData];
}
ich denke, es kann Ihnen helfen.
Kurz gesagt: Sie sollten MVC-Protokoll folgen. Löschen Sie die Daten aus Model und laden Sie dann Ihre Ansicht neu. Für eine detailliertere Antwort sollten Sie Ihren Code posten (nur die Teile, bei denen Sie vermuten, dass das Problem vorliegt) und beschreiben, was Sie bereits versucht haben ... Sonst werden Sie nur eine Antwort bekommen, statt eine gute Antwort. Hat eine gute Frage, um eine gute Antwort zu bekommen. Das Lesen von [FAQ] (http://stackoverflow.com/faq) tut nicht weh. –