Comment ajouter appuyez sur le geste de UICollectionView , tout en maintenant la sélection de cellule?

Tâche

Ajouter un simple toucher d'un geste UICollectionView, ne pas obtenir de la manière de la sélection de cellules.

J'en veux d'autres entailles sur les n-cellules de la partie de la collectionView.

Code

À L'Aide De XCode8, Swift 3.

override func viewDidLoad() {
    ...
    collectionView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(tap)))
}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    print(indexPath)
}

func tap(sender: UITapGestureRecognizer){
    print("tapped")
}

Résultat

Oui, c'est dans la façon dont aujourd'hui. Lorsque vous appuyez sur la cellule, il enregistre "tapé".

Analyse

  • - Je vérifier le hitTest valeur de retour de la collectionView et la cellule. Les deux retournés à la taraudés de la cellule, ce qui signifie qu'ils forment un intervenant de la chaîne de la Cellule> CollectionView
  • pas de gestes sur la cellule
  • 3 gestes sur collectionView, personne ne semble travailler avec la cellule sélectionnez
    • UIScrollViewDelayedTouchesBeganGesturerecognizer
    • UIScrollViewPanGestureRecognizer
    • UITapGestureRecognizer
  • de la pile, semble sélection de cellule a une autre trace de la pile avec un geste de la cible-modèle d'action.
  • double tap geste travaille avec la sélection de cellules.

Question

Ne pouvais pas trouver plus de trace. Toutes les idées sur la façon dont la sélection est mise en œuvre ou de réaliser cette tâche?

OriginalL'auteur jchnxu | 2016-11-01