2010-04-27 9 views
26

Básicamente tengo un UIButton personalizado y este botón personalizado contiene subvistas. Si agrego esas subvistas a mi UIButton, el botón deja de responder a los cambios de eventos. Es decir, si lo toco, no responde al selector. Tengo todo configurado como userInteractionEnabled. También intenté agregar touchbegan y esto está funcionando. Si elimino esas subvistas, el UIButton funciona nuevamente.UIButton personalizado + subvistas = sin eventos

¿Cómo obtengo los eventos de tap desde el botón?

Respuesta

56

Las subvistas deben tener userInteractionEnabled establecido en NO. Lo que está sucediendo aquí es que las subvistas obtienen los eventos táctiles en lugar del UIButton. Si eso no funciona, otra opción es anular hitTest:withEvent: en su UIButton personalizado para que siempre se devuelva y no pregunte a sus subvistas si deberían manejar el evento. Vea el UIView docs para más detalles.

+0

Muchas gracias. Tenías razón, no debería tener userinteraction como habilitado. – user281300

+0

Gracias! excelente solución. –

+0

No sé cómo * cuántas veces * esto me ha molestado. Sigo pensando que es necesario revertirlo. Voy a jugar con un grabado al aguafuerte ahora. –

Cuestiones relacionadas