Tengo un UIGestureRecognizer que deseo trabajar en dos UIView diferentes, ambas en la misma jerarquía de vistas de un UiViewController. La acción de UIGestureRecognizer es aproximadamente la misma en cada uno, por lo que me gustaría que se llame a la misma función (obviamente, lo hará) y en el momento de la ejecución le diré a qué UIViews me estoy refiriendo. ¿Pero cómo? No puedo ver que UIGestureRecognizer esté llevando la información del objeto con él. ¿Me falta la línea en la documentación o el gestureRecognizer no sabe a qué objeto se ha adjuntado para que se llame? Parece que el objetivo del lenguaje sería que lo sabría.¿UIGestureRecognizer sabe a qué objeto se llama?
Como alternativa, tal vez estoy mal entendido la intención de la clase y que no debería hacerlo:
UITapGestureRecognizer *dblTap =
[[UITapGestureRecognizer alloc] initWithTarget: self
action: @selector(handleDblTap:)];
[viewA addGestureRecognizer: dblTap];
[viewB addGestureRecognizer: dblTap];
y luego esperar a ser capaz de:
-(void)handleDblTap: (UIGestureRecognizer *)gestureRecognizer
{
if (viewA)...
Si, de hecho, UIGestureRecognizer no soporta estar unido a múltiples objetos simultáneamente, entonces, si sabes por qué no lo soporta, ¿podrías educarme? Gracias por la ayuda.
@NJones es correcto. Una vista por reconocedor. También puede establecer una etiqueta para cada reconocedor para descubrir qué reconocedor llamó a ese método. –