2010-08-06 11 views
11

Tengo una UITableView que es una subvista de UIView, luego esa UIView es una subvista de UIScrollView. ¿Cómo puedo detectar los toques que deberían desplazarse por el UITableView?Desplazamiento de una UITableView dentro de UIScrollView

El UITableView puede obtener eventos de selección de elementos (se selecciona/toca una celda en la tabla) bien, excepto que debe mantener presionada la celda antes de que se dispare. Pero no puedo obtener el UITableView para desplazarse, siempre es el UIScrollView que reacciona al gesto panorámico.

Cualquier ayuda es muy apreciada. ¡Gracias por adelantado!

EDIT: Resuelto, aunque hice una pregunta incorrecta. Funciona de manera predeterminada como señaló Roman K. Creo que el problema estaba relacionado con tener una parte del UITableView fuera de los límites del UIScrollView (el UITableView pasó los límites inferiores del UIScrollView). Configurarlo para encajar correctamente dentro del UIScrollView lo solucionó.

+0

me gustaría sugerir que esta respuesta http://stackoverflow.com/questions/3422915/scrolling-a-uitableview-inside-a-uiscrollview/32486714#32486714 –

Respuesta

17

Asegúrese de que las propiedades UIScrollView'sdelaysContentTouches y canCancelContentTouches estén configuradas correctamente. Controlan cómo la instancia de UIScrollView pasa información táctil a sus subvistas. De manera predeterminada, delaysContentTouches está establecido en SÍ. Además, asegúrese de que, si extendió UIScrollView, touchesShouldBegin:withEvent:inContentView:, permite toques en la subvista.

De lo contrario, el desplazamiento UITableView debería funcionar por defecto en su escenario. Si crea un proyecto de prueba con solo la jerarquía de vista como se describe, verá que es el caso. Entonces, compare los dos y vea qué diferencia afecta el desplazamiento.

+1

creo que me puse delaysContentTouches (conjunto de SÍ) y canCancelContentTouches (establecido en NO) bien. Puedo obtener grifos en el UITableView bien, pero no golpes y sartenes. – Altealice

+0

Gracias. Ha sido un dolor por tanto tiempo. – thedp

+3

Creo que esta lógica se rompió en iOS8. Parece que UIScrollView interceptará los movimientos de desplazamiento vertical y no los ignorará. Publiqué una nueva pregunta al respecto - http://stackoverflow.com/questions/25558630/uiscrollview-behavior-is-different-in-ios8 – sha

Cuestiones relacionadas