I came up with a simple solution that does not require a subclass of UIButton.
In the action method defined for the UIButton TouchUpInside control event, I added the following line of code:
[self sendActionsForControlEvents:UIControlEventTouchUpInside]
This causes the TouchUpInside control event to be called when clicked anywhere on a custom UIControl.
source share