Pregunta rápida: ¿cómo puedo detectar si un reconocedor de gestos de toque se encuentra dentro de una subvista de la vista a la que se agrega? P.ej. Si hago clic en un objeto como un cuadrado que se ha agregado como subvista a un fondo al que se ha agregado un reconocedor de toque, ¿cómo puedo detectar que se ha tocado?Cómo detectar un gesto de tap en las subvistas
Respuesta
Puede agarrar el punto del grifo del reconocedor de gestos cuando se llama al método de manejo correspondiente a cualquier vista que desee utilizando -locationInView:
. Luego, use el siguiente método en UIView: - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
para obtener una referencia a la subvista real que se tocó recordando que el punto que pasa está en el mismo espacio de coordenadas que la vista.
algo de código para empezar:
CGPoint point = [tapGestureRecognizer locationInView:parentView];
UIView *tappedView = [parentView hitTest:point withEvent:nil];
Para pruebas de posicionamiento para trabajar la vista tiene que tener la propiedad userInteractionEnabled
establecido en YES
. Muchas vistas, como UILabel
s, tienen este ajuste en NO
de manera predeterminada. Así que antes de la anterior:
self.subviewOfInterest.userInteractionEnabled = YES;
¡Gracias, eso ayuda mucho! – Fitzy
Gracias @Brandom –
puede utilizar el requireGestureRecognizerToFail:
reconocer el grifo subvista consulte this código
tal vez debería establecer como: subviews.userInteractionEnabled = SI; ¡buena suerte!
¡Maldición! Esto es lo que necesitaba. Mi vista secundaria fue ignorada por gestureRecognizer, y ahora funciona. Gracias. – surfrider
- 1. Cómo capturar el gesto Tap en MKMapView
- 2. Adición de Tap Gesto de UIImage
- 3. Cómo detectar un gesto de deslizamiento en la vista web
- 4. Detectar Tap en CalloutBubble en MKAnnotationView
- 5. cómo detectar deslizar la dirección del gesto?
- 6. Detectar el tap con pyaudio desde el micrófono en vivo
- 7. Detectar gesto del usuario, como deslizar
- 8. Cómo reconocer el gesto de tap mientras se está animando una vista
- 9. cómo eliminar las subvistas de scrollview?
- 10. viewWillAppear para las subvistas
- 11. iPhone: Detectando Tap en MKMapView
- 12. Reordenar las subvistas de UIView
- 13. Cómo detectar un gesto de deslizar para borrar en una UITableviewCell personalizada?
- 14. cómo detectar el tap en UIWebView si no es un enlace
- 15. ¿Cómo detectar el gesto de la mano en la webcam en vivo con javascript?
- 16. Desactivar reconocedor gesto
- 17. Necesito capturar UIView en un UIImage, incluidas todas las subvistas
- 18. UIButton personalizado + subvistas = sin eventos
- 19. Iterar todas las subvistas de un tipo específico
- 20. NSView drawRect ¿interfiere con las subvistas?
- 21. cocos2d-IOS - Gesto reconocedores
- 22. Enrutamiento del backbone con las subvistas
- 23. Pan gesto interfiere con UISlider
- 24. ¿Cómo puedo insertar una subvista debajo de las otras subvistas
- 25. ¿Cómo agregar un gesto de deslizamiento vertical a la aplicación iPhone para todas las pantallas?
- 26. GestureOverlayView y Double-Tap
- 27. acciones reconocedor y botón Gesto
- 28. Fading UIView permite ver las subvistas
- 29. ¿Cómo implemento un gesto de saludo en kinect?
- 30. Mostrar datepicker en textfield tap
Por favor, aclare claramente lo que le gusta hacer? ¿Quieres reconocer el clic en la subvista? –