2012-02-29 17 views
16

Tengo un UITableView que dibuja un subView cuando el usuario toca una celda.desactivar la interacción táctil en UITableView

El problema es que el dibujo subView está animado y si el usuario es lo suficientemente rápido puede tocar varias veces una celda que quiero deshabilitar durante la animación y luego.

He intentado usar esto:

- (void) tableView: (UITableView*) tableView didSelectRowAtIndexPath: (NSIndexPath*) indexPath { 

    [[UIApplication sharedApplication] beginIgnoringInteractionEvents]; 

y también una variable bool:

if (isAnimating == NO) { 

pero ninguno parece funcionar. En cada caso, los toques rápidos lo estropean todo.

¡Cualquier ayuda sería genial gracias!

Respuesta

36

Prueba esto ... Después de hacer clic en Celda

tableView.userInteractionEnabled = NO; 
+4

.userInteractionEnabled = FALSE; ¡Trabajos! – itgiawa

+8

Use NO en su lugar para BOOLs en Objective-C, no use False o FALSE – Edgar

+0

Ok, podría decirme la diferencia de NO a FALSE? –

2

Sé que esto es una vieja cuestión, sin embargo le faltaba la versión rápida es así, en Swift 3 es:

tableView.isUserInteractionEnabled = false; 

y para volver a encenderla es:

tableView.isUserInteractionEnabled = true; 

acaba de ocurrir esta m Debería ayudar a alguien si buscaban la respuesta en un veloz 3 como lo era yo, y termina aquí.

Cuestiones relacionadas