UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapTapTap:)];
[self.view1 addGestureRecognizer:tapGesture];
[self.view2 addGestureRecognizer:tapGesture];
[tapGesture release];
En el código anterior solo view2
se reconocen los grifos . Si comento la tercera línea, view1
se reconocen los grifos . Si estoy en lo cierto y solo puede usar un reconocedor de gestos una vez, no estoy seguro de si se trata de un error o si solo necesita más documentación.
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didPressed:)]; [self.view1 addGestureRecognizer:tapRecognizer]; [self.view2 addGestureRecognizer:tapRecognizer];
La vista de salida1 no tiene una matriz de reconocedores de gestos; view2 tiene una matriz de reconocedores de gestosLo solucioné usando el siguiente.
Luego, en mi método handleLongPress, acabo de establecer un UIButton igual a la vista del reconocedor de gestos y ramifico lo que hago en función de ese botón
fuente
Para Swift 3 en caso de que alguien requiera esto: Basado en la respuesta de Bhavik Rathod anterior.
fuente
getGestureRecognize
porque eso es lo que hace esta funciónPodemos hacer algo como esto, es fácil y simple
1) cree la función como se muestra a continuación en su controlador (esta función devolverá GestureRecognizer)
2) ahora configure este reconocedor en múltiples vistas
fuente
setNumberOfTapsRequired:1
no es necesariaNo, no debe adjuntar reconocedores de gestos a más de una vista.
Existe esta información explícita en la documentación de Apple:
Guía de manejo de eventos para iOS: reconocedores de gestos Biblioteca de desarrolladores de Apple de
Si bien, como otros mencionan, podrían funcionar en algunos casos, está claramente en contra de la documentación y podría cambiar en cualquier versión futura de iOS.
Lo que puede hacer es agregar reconocedores de gestos separados a las vistas que desea monitorear y pueden compartir una acción común.
fuente
Bueno, si alguien no quiere codificar para agregar la vista de gestos para varios botones como kwalker ha respondido anteriormente, y desea hacerlo a través de Interface Builder, esto puede ayudarlo.
1) Puede agregar el Reconocimiento de gestos de pulsación larga desde la Biblioteca de objetos al igual que agrega otros objetos como UIButtons y UILabels.
Inicialmente, lo que terminé usando fue que tomé solo uno
2) Establecer salidas de referencia
UIButton
y acciones enviadas con el Propietario del archivo.fuente
si tienes vista fija te sugiero que hagas algo como esto
de esa manera reducirá múltiples variables inútiles diferentes
fuente
Puede crear una extensión genérica a la vista para agregar reconocedores de gestos fácilmente. Este es solo un ejemplo, pero podría verse así
Para agregar un reconocedor de 2 toques en una vista, simplemente llame:
También podría agregar fácilmente un reconocedor de deslizamiento
y así. Solo recuerda que el objetivo debe estar vinculado al selector.
fuente
Anular clase por '
<UIScrollViewDelegate>
'Y use este método en la clase .m:
Este método lo ayudará a habilitar el deslizamiento múltiple en una sola vista.
fuente
¿Qué pasa con reescribir (recrear) su GestureRecognize cada vez que agrega un reconocedor de gestos que apunta a la misma función? En el caso de abajo funciona. Estoy usando IBOutletCollection
Swift 2:
fuente
Puede hacerlo utilizando este código mis vistas, que son vistas de imágenes en el xib.
fuente
500
a todas las etiquetas de sus vistas y luego restar500
? ¿Por qué no simplemente comenzar sus etiquetas en1
(o incluso0
) en lugar de501
?1
solo he copiado este código de mi aplicación de donde lo estoy dando501
. Pero sí, no le des0
porque he leído en alguna parte que siempre indica la vista de los padres, por lo que creará una complicación. Créeme, lo he enfrentado.