与UIGestureRecognizer一起收听UITouch事件

Abh*_*nav 7 iphone cocoa-touch objective-c uigesturerecognizer ios

我正在创建一个自定义UIView并在其上添加UITapGestureRecognizer.我有一个轻拍手势的处理程序.但与此同时,我希望我的UIView能够收听touchesBegan和touchesEnded方法.我已经实现了gestureRecognizer:shouldReceiveTouch:方法,但是touchesBegan/touchesEnded方法也没有被调用.有什么线索的原因?

在我的自定义UIView里面

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)iGestureRecognizer shouldReceiveTouch:(UITouch *)iTouch {
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

在我的视图控制器内

MyCustomView aCustomView = [[[MyCustomView alloc] init] autorelease];
                UIGestureRecognizer *myGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
[aCustomView addGestureRecognizer:myGestureRecognizer];
                [myGestureRecognizer release];
Run Code Online (Sandbox Code Playgroud)

Rob*_*ier 10

您需要为手势识别器设置cancelsTouchesInView(并且可能delaysTouchesBegandelaysTouchesEnded)NO.手势识别器的默认行为是避免让它和视图处理触摸.这些设置可让您微调该行为.