iOS 触摸 手势和tableView cell的点击冲突

来源:互联网 发布:网络热词2017及解释 编辑:程序博客网 时间:2024/09/21 09:17

给UIPanGestureRecognizer添加代理(UIGestureRecognizerDelegate),UIGestureRecognizerDelegate中有一个方法:

   -(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch

在进入手势识别事件之前,先进入该方法,对那些不需要响应手势事件的事件,可以通过返回一个NO型布尔值不响应手势识别;而对于需要响应手势识别的情况,只需要返回一个YES就可以。

举例如下:

  UIPanGestureRecognizer* panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)];    //为手势识别器设置代理    panRecognizer.delegate = self;    [self.view addGestureRecognizer:panRecognizer];⋯⋯然后,实现UIGestureRecognizerDelegate的方法:// 当点击Button时会被误认为是手势,所以在这个判断一下-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch {    if([touch.view isKindOfClass:[UIButton class]])        return NO;    else        return YES;}
0 0
原创粉丝点击