Tengo un método touchesBegan configurado para recoger las coordenadas cuando el usuario toca la pantalla. Funciona muy bien, excepto cuando toco un UIButton. ¿Cómo lo hago para que el botón active el método touchesBegan también?¿Cómo se obtienen las coordenadas touchesBegan cuando se activa un UIButton?
22
A
Respuesta
50
Agregar controladores de eventos al botón, algo así como lo siguiente,
[myButton addTarget:self action:@selector(dragBegan:withEvent:) forControlEvents: UIControlEventTouchDown];
[myButton addTarget:self action:@selector(dragMoving:withEvent:) forControlEvents: UIControlEventTouchDragInside];
[myButton addTarget:self action:@selector(dragEnded:withEvent:) forControlEvents: UIControlEventTouchUpInside | UIControlEventTouchUpOutside];
controlar los eventos como los siguientes, se puede obtener el punto de contacto del evento ev como abajo,
- (void)dragBegan:(UIControl *)c withEvent:ev {
NSLog(@"dragBegan......");
UITouch *touch = [[ev allTouches] anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
NSLog(@"Touch x : %f y : %f", touchPoint.x, touchPoint.y);
}
- (void)dragMoving:(UIControl *)c withEvent:ev {
NSLog(@"dragMoving......");
}
- (void)dragEnded:(UIControl *)c withEvent:ev {
NSLog(@"dragEnded......");
}
Esta no es mi propia respuesta. Recibí este código de http://sree.cc/iphone/handling-touche-events-for-uibuttons-in-iphone e hice algunos cambios menores.
0
Intente anular la clase UIButton y en el método touchesBegan llame a [super touchesBegan ..].
Cuestiones relacionadas
- 1. ¿Cómo obtengo las coordenadas de toque en un UIButton personalizado?
- 2. ¿Cómo se obtienen los hijos de un widget en Qt?
- 3. UIButton touch se retrasa cuando en UIScrollView
- 4. UIButton dentro de UIScrollView no se activa al tocar
- 5. Ocultar un UIButton cuando se toca otro botón
- 6. Detectando cuando se ha presionado un UIButton personalizado
- 7. UIButton se pone oscuro cuando se selecciona (quiero evitar esto)
- 8. ¿Cómo se obtienen múltiples argumentos en las funciones de Perl?
- 9. Cuando overFlowToDisk se activa en EHCACHE?
- 10. Debug.Assert() sólo se activa cuando se pisa sobre él
- 11. ¿Cómo se convierten las coordenadas del mundo a las coordenadas de la cámara?
- 12. ¿Hay un evento que se activa cuando se ha establecido un enlace en una propiedad?
- 13. UIScrollView touchesBegan
- 14. Session_End no se activa?
- 15. Extensión de Chrome: ¿se activa un evento cuando se crea un elemento?
- 16. RaisePostBackEvent no se activa
- 17. ¿Cómo se puede saber qué objeto se está tocando en touchesBegan?
- 18. Evitar que un QMenu se cierre cuando se activa una de sus QAction
- 19. ¿Cómo iniciar las rutas Camel en ActiveMQ esclavo solo cuando el esclavo se activa en failover?
- 20. Obtenga las coordenadas de un punto de mkmapview en iphone
- 21. Force binding para actualizar cuando se activa Command
- 22. onmouseout no se activa cuando el elemento desaparece
- 23. ¿La red troncal activa .add cuando se recolecta una colección?
- 24. jqGrid: ¿hay un evento para cuando las columnas se reordenan?
- 25. Al animar, ¿cómo se activa la devolución de llamada solo cuando se hacen todos los elementos?
- 26. ¿Cómo se obtienen los servidores DNS actuales para Android?
- 27. ¿Cómo se duplica un UIButton en Objective C?
- 28. Actualizar una actividad de servicio cuando se activa
- 29. ¿Cómo se voltea el sistema de coordenadas de un NSView?
- 30. Drools se activa en un bucle
¡Esto funcionó muy bien! ¡¡Muchas gracias!! –