在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的點擊事件。