Custom UIButton + subviews = no events

iphone, objective-c, uibutton

Solution

The subviews should have `userInteractionEnabled` set to `NO`. What is happening here is that the subviews are getting the touch events instead of the UIButton. If that doesn't work another option is to override `hitTest:withEvent:` in your custom UIButton so that it always returns itself and does not ask its subviews if they should handle the event. See the UIView docs for more details.

Problem

Basically I have a custom UIButton and this custom button contains subviews. If I add those subviews to my UIButton, then the button stops responding to event changes. I.e if I tap on it it doesn't respond to the selector. I have everything set as `userInteractionEnabled`. I also tried adding touchbegan and this is working. If I remove those subviews, the UIButton works again. How Do I get the tap events from the button?

Original source