Ajoutez un seul geste à UICollectionView
, ne UICollectionView
pas la sélection des cellules.
Je veux d'autres taps sur la partie no-cell de la collectionView.
En utilisant 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") }
Oui, ça devient un obstacle maintenant. Lorsque vous appuyez sur la cellule, il se connecte "tapoté".
Impossible de find plus de trace. Des idées sur la façon dont la sélection de cellule est implémentée ou pour accomplir cette tâche?
Chaque fois que vous souhaitez append un outil de reconnaissance de gestes, mais pas les touches de la vue cible, vous devez définir UIGestureRecognizer.cancelsTouchesInView
pour votre instance de gestureRecognizer
sur false.
Au lieu d'essayer de forcer didSelectItem
vous pouvez simplement get l'indexPath et / ou la cellule de cette façon:
func tap(sender: UITapGestureRecognizer){ if let indexPath = self.collectionView?.indexPathForItem(at: sender.location(in: self.collectionView)) { let cell = self.collectionView?.cellForItem(at: indexPath) print("you can do something with the cell or index path here") } else { print("collection view was tapped") } }