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
Vous devez vous connecter pour publier un commentaire.
Chaque fois que vous souhaitez ajouter un geste de reconnaissance, mais de ne pas voler la touche à partir de la vue cible, vous devez définir
UIGestureRecognizer.cancelsTouchesInView
pour votregestureRecognizer
instance de faux.OriginalL'auteur Josh Homann
Au lieu d'essayer de forcer les
didSelectItem
vous pouvez juste obtenir le indexPath et/ou de cellules de cette façon:OriginalL'auteur Frankie