Ein Beispiel, wo Sie wollen würde dies tun, wenn Sie eine Geste auf dem UICollectionView erfassen möchten, und dann etwas mit dem spezifischen Element in der UICollectionView, die unter der Position fällt der Wischgeste. Der folgende Code als Methode in Ihrem UICollectionViewController gibt die richtige Zelle zurück und berücksichtigt das Scrollen innerhalb der Collection-Ansicht.
- (UICollectionViewCell *) cellForGesture:(id)sender
{
UISwipeGestureRecognizer * gesture = sender;
CGPoint point = [gesture locationInView:self.view];
NSLog(@"Swipe location: %f, %f", point.x, point.y, nil);
CGPoint pointInCollection = CGPointMake(point.x + self.collectionView.contentOffset.x, point.y + self.collectionView.contentOffset.y);
NSIndexPath * indexPath = [self.collectionView indexPathForItemAtPoint:pointInCollection];
UICollectionViewCell * cell = [self.collectionView cellForItemAtIndexPath:indexPath];
return cell;
}
Sie könnten das obige Verfahren in einem Kontext wie folgt aufrufen (wo revealSupplementalControls
eine benutzerdefinierte Methode auf Ihrer UICollectionViewCell Klasse):
- (IBAction) swipeLeft:(id)sender {
UICollectionViewCell * cell = [self cellForGesture:sender];
[cell revealSupplementalControls];
}
Du bist ein Genie, Putz abrufen möchten. DANKE! – theDuncs
Dieser Satz scheint seltsam oxymoronic ... – Putz1103
Ich glaube nicht, dass das funktioniert. Der IndexPfad gibt immer null zurück. Ich suche eine andere Lösung. –