Pregunta

He intentado encontrar una solución fácil para la siguiente. Tengo una visión principal que sostiene una baldosa. Quiero arrastrarlo durante un UITableView. Podría programar la selección y arrastre ya con UIGestureRecognizer.

Ahora mi problema es cómo puedo detectar dentro de la vista de tabla que hay un elemento que va a ser arrastrados por encima de ella. Por ejemplo, yo quiero resaltar la fila dada cuando la baldosa se mueve por encima de ella.

He intentado añadir los / comenzaron / eventos terminados touchesMoved a la viewCell. Ellos no recibe incendios cuando estoy arrastrando el azulejo sobre ella (en otras palabras, la teja se esconde una parte de la viewCell bajo mi dedo). Ellos son despedidos cuando no hay baldosas arrastrado anteriormente.

¿Hay un método eficaz para que hittest?

Gracias.

¿Fue útil?

Solución

Hay un montón de problemas de interfaz de usuario aquí que deben ser abordados.

  • En general, arrastrar y soltar en el iPhone es una mala idea. Es muy difícil de hacer, y obtener retroalimentación va a ser problemático, porque el dedo será obstruir la operación de arrastre
  • utilizando celda seleccionada de la tabla para indicar 'dropability' se puede obtener rechazado por los revisores tienda de aplicaciones; que es para indicar "He escogido este celular", no "Voy a dejar algo en él"

Dicho esto, es probable que desee para gestionar todos sus eventos de toque en la vista 'fuente', y enviar los mensajes de mesa a partir de ahí, en lugar de tratar de hacer malabares mensajes alrededor. Una vez que su -touchesBegan: withEvent: se ha llamado en una sola vista, todos los posteriores -touchesMoved: withEvent: y -touchesEnded: withEvent: será enviado a la vista para el ciclo de vida de un toque; reenviarlos alrededor confundirá a los diablos de todos los involucrados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top