varias una tablas seleccionar rangos rango puedo marcar extenso edicion desplazamiento contenido como columna celdas celda ios swift uicollectionview uigesturerecognizer uiresponder

ios - una - ¿Cómo agregar el gesto de tap a UICollectionView, mientras se mantiene la selección de celda?



seleccionar el contenido de una celda en excel (2)

En lugar de tratar de forzar a didSelectItem , puede obtener el indexPath y / o la celda de esta manera:

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") } }

Tarea

Agregue un solo gesto de toque a UICollectionView , no UICollectionView en la selección de celda.

Quiero algunos otros toques en la parte sin celda de collectionView.

Código

Usando 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") }

Resultado

Sí, se pone en el camino ahora. Cuando toca en la celda, registra "golpeado".

Análisis

  • Verifico el valor de retorno del TestTest de la collectionView y la celda. Ambos devolvieron la celda girada, lo que significa que forman una cadena de respuesta de celda -> CollectionView
  • sin gestos en la celda
  • 3 gestos en collectionView, nadie parece funcionar con la celda seleccionada
    • UIScrollViewDelayedTouchesBeganGestureRecognizer
    • UIScrollViewPanGestureRecognizer
    • UITapGestureRecognizer
  • callStack, parece que la selección de celda tiene una traza de pila diferente con el patrón de acción de objetivo de gesture.
  • el gesto de doble toque funciona junto con la selección de celda.

Pregunta

No se pudo encontrar más rastro. ¿Alguna idea sobre cómo se implementa la selección de células o para lograr esta tarea?


Siempre que desee agregar un reconocedor de gestos, pero no robar los toques de la vista de destino, debe establecer que UIGestureRecognizer.cancelsTouchesInView para su instancia de gestureRecognizer falso.