在UIButton的superview中定义一个手势,在iOS5上UIButton事件不会被执行,会执行手势事件,iOS6上已经没有这个问题了,解决方法:

手势添加委托,委托方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { // test if our control subview is on-screen if (_view.superview != nil) { if ([touch.view isDescendantOfView:_view] && [touch.view isKindOfClass:[UIButton class]]) { // we touched our control surface return NO; // ignore the touch } } return YES; // handle the touch}

这样手势不再执行,会执行UIButton的点击事件。