2009-05-31 6 views
5

Estoy implementando gestos de deslizamiento en mi control customtableviewcell y tengo que implementar el evento touchesBegan. Puedo implementar los deslizamientos, pero desafortunadamente, debido a que touchesBegan se maneja en la celda personalizada, no recibo un mensaje didSelectRowAtIndexPath en el controlador de tabla. Si el método touchesBegan está desactivado, funciona.Toques de manejoComience en UITableViewCell deshabilita didSelectRowAtIndexPath

¿Cómo se debe manejar esto? Quiero que el evento táctil burbujee en la cadena de respuesta después de que touchesBegan se procese. ¿Cómo puedo hacer esto?

Gracias.

Respuesta

12

I "m seguro se puede ver que esto está sucediendo porque está sustituyendo un método que se definió previamente en una superclase. Y de esta manera significa que los eventos no están siendo llamados.

has necesitado llamando [súper touchesBegan]? que cosas así todo aguas arriba se maneja. y puede invalidar el gesto de deslizar.

u otra opción es llamar al delegado cuando se detecta el toque en su propio método toques.

algo Me gusta (probablemente también tenga implementaciones de otros eventos táctiles)

-(void) touchesBegan 
{ 
//logic to detect tap only. 
[tablecell.delegate didSelectRowAtIndexPath:(some way to determin touched row)] 
} 
+6

[super touchesBegan] es probablemente la forma correcta de hacerlo. – amattn

+0

Gracias, eso funcionó. – Mugunth

+0

no hay problema, ¿qué método usaste? También agradecería los puntos de respuesta – Bluephlame

Cuestiones relacionadas