美文网首页
iOS 开发中遇到TableView 与单击手势冲突问题

iOS 开发中遇到TableView 与单击手势冲突问题

作者: 镌写不一样的人生 | 来源:发表于2017-02-09 13:44 被阅读0次

    在iOS 开发过程中,有时会遇到界面既需要tableView 的点击事件,又需要在当前View添加手势,我们知道,如果直接加手势,会导致tableView的代理方法- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath  在点击cell 时不调用,偶然间发现这种情况下,长按cell 反而会触发这个代理方法,从而可以知道,如果出现tableView的cell点击代理方法不执行,长按cell反而有响应 ,十有八九是与手势冲突了,这样提供了一个定位该类bug的思路。下面说说解决tableView 与手势冲突的办法,在手势的代理方法内,区分手势的响应区域即可,代码如下:

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

    {

    if ([touch.view  isKindOfClass:[UITableViewCell class]]) {

    return NO;

    }else if ([touch.view.superview isKindOfClass:[UITableViewCell class ]]){

    return NO;

    }

    return YES;

    }

    相关文章

      网友评论

          本文标题:iOS 开发中遇到TableView 与单击手势冲突问题

          本文链接:https://www.haomeiwen.com/subject/ysviittx.html