Ich versuche den Touch-Ort innerhalb des ausgewählten zu bekommen
UICollectionviewCell. Ich habe einen UIViewController, VC, der eine UICollectionView, collectionView, als seine Ansicht enthält. In der CollectionView befinden sich UICollectionViewCells. Der VC stimmt mit dem UICollectionViewDelegate
überein, also möchte ich den berührten Ort innerhalb des Delegaten-Callbacks, collectionView:(UICollectionView *)collection didSelectItemAtIndexPath:(NSIndexPath *)indexPath
(wenn möglich) erhalten. Irgendeine Empfehlung, wie man das macht? Danke.
* UPDATE *
Am Ende habe ich den Abgriff auf UIViewCollectionView
mit dem UIGestureRecognizer
erkannt und dann den Abgriffspunkt in die UICollectionViewCell
-Ansicht umgewandelt. Bitte lassen Sie mich wissen, ob es einen besseren Weg gibt. Danke.
Sie werden wahrscheinlich eine benutzerdefinierte Zelle benötigen, um dies zu tun. didSelectItemAtIndexPath
sagt nur, dass eine Zelle ausgewählt wurde. Nicht wo in der Zelle es berührt wurde.
UIView hat eine Methode func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView?
. Um den Berührungspunkt zu erhalten, können Sie diese Methode in Ihrer Sammlungsansicht oder Sammlungsansichtszelle überschreiben.
Und es gibt Methoden wie func convertPoint(_ point: CGPoint, toView view: UIView?) -> CGPoint
, mit denen Sie Punkte in verschiedenen Koordinatensystemen konvertieren können.
Sie sollten die Eigenschaft zum Speichern der Berührungsstelle in der UICollectionViewCell hinzufügen.
%Vor%Fügen Sie dann das Ereignis von touchesBegan in YourCollectionViewCell.m
hinzu %Vor%Schließlich können Sie den touchPoint in Ihrer UICollectionView verwenden
%Vor%Ich denke, es ist der einfachste Weg, den Touch-Standort zu bekommen. Und ich benutze es in meinen Codes.
Tags und Links objective-c ios uicollectionview uicollectionviewcell