我们在做数据埋点时,如果要做到解藕的实现,需要使用hook的方式做拦截。
在做UIButton事件拦截的时候,我知道button点击后会执行sendAction:to:forEvent:
方法,所以我可以hook这个方法做些其他事,那UIView的Tap事件,该拦截哪个方法呢?
我们可以拦截shouldReceiveTouch
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isDescendantOfView:self.popupView]) { //判断条件,比如是popView
//NSLog(@"NO");
return NO; //点击无效
}
return YES;
}