Wie wird die TAP-Geste zu UICollectionView hinzugefügt, während die Zellenauswahl beibehalten wird?

8

Aufgabe

Fügen Sie UICollectionView eine einzelne Tap-Geste hinzu, um die Zellenauswahl nicht zu behindern.

Ich möchte einige andere Taps auf den no-cell-Teil der collectionView.

Code

Verwenden von XCode8, Swift 3.

%Vor%

Ergebnis

Ja, es steht jetzt im Weg. Wenn Sie auf Zelle tippen, wird "getappt" protokolliert.

Analyse

  • Ich überprüfe den hitTest-Rückgabewert der collectionView und der Zelle. Beide haben die angezapfte Zelle zurückgegeben, was bedeutet, dass sie eine Responder-Kette von Cell bilden - & gt; CollectionView
  • keine Gesten auf der Zelle
  • 3 Gesten auf collectionView, niemand scheint mit der Zellenauswahl zu arbeiten
    • UIScrollViewDelayedTouchesBeganGestureRecognizer
    • UIScrollViewPanGestureRecognizer
    • UITapGestureRecognizer
  • callStack, scheint die Zellenauswahl einen anderen Stack-Trace mit dem Ziel-Aktionsmuster der Geste zu haben.
  • Doppeltippgeste funktioniert zusammen mit der Zellenauswahl.

Frage

Konnte keine weitere Spur finden. Irgendwelche Ideen, wie Zellauswahl implementiert wird oder um diese Aufgabe zu erreichen?

    
jchnxu 01.11.2016, 18:07
quelle

2 Antworten

17

Wenn Sie einen Gestenerkenner hinzufügen, aber die Berührungen nicht aus der Zielansicht stehlen möchten, sollten Sie UIGestureRecognizer.cancelsTouchesInView für Ihre gestureRecognizer -Instanz auf false.

    
Josh Homann 01.11.2016, 18:54
quelle
5

Anstatt zu versuchen, didSelectItem zu erzwingen, können Sie den IndexPfad und / oder die Zelle einfach auf folgende Weise erhalten:

%Vor%     
Frankie 01.11.2016 18:43
quelle