I have the issue in two completely different situations, which makes it really weird.
Are the UIButtons inside a UIScrollView ? If they are, the delay is there so the scrollview can determine whether the touch is for scrolling or it should be passed on to the subview.
See also UIButton touch is delayed when in UIScrollView