20

Si añado un reconocedor gesto a una celda de una tabla llamada cell, por ejemplo:¿Debo liberar un reconocedor de gestos?

UILongPressGestureRecognizer *_longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(cellGestureRecognized:)]; 
_longPressRecognizer.allowableMovement = 20; 
_longPressRecognizer.minimumPressDuration = 1.0f; 
[cell addGestureRecognizer:_longPressRecognizer]; 
[_longPressRecognizer release], _longPressRecognizer = nil; 

¿Es necesario llamar manualmente -removeGestureRecognizer: en esta celda en algún momento, o hace el reconocedor gesto quedar eliminado y puesto en libertad por mí cuando la celda ya no se usa?

+0

Una cosa a tener en cuenta es que la acción del objetivo no es fuerte por defecto. http://stackoverflow.com/a/21578346/1418457 – onmyway133

Respuesta

41

Los reconocedores de gestos se agregan a un NSMutableArray interno de la vista. Esta matriz se lanzará una vez que la vista se desasigna. Por lo tanto, no es necesario llamar manualmente al -removeGestureRecognizer:.

+0

Gracias, muy apreciado. –

Cuestiones relacionadas