zoukankan      html  css  js  c++  java
  • iOS处理视图上同时添加单击与双击手势的冲突问题

        _bgView.userInteractionEnabled = YES;
        //在cell上添加 bgView,给bgView添加两个手势检测方法
        UITapGestureRecognizer *doubleTapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleDoubleTap:)];
        doubleTapGesture.numberOfTapsRequired =2;
        //    doubleTapGesture.numberOfTouchesRequired =1;
        [_bgView addGestureRecognizer:doubleTapGesture];
        
        
        UITapGestureRecognizer *singleTapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleSingleTap:)];
        singleTapGesture.numberOfTapsRequired =1;
        //    singleTapGesture.numberOfTouchesRequired  =1;
        [_bgView addGestureRecognizer:singleTapGesture];
        
        
        //只有当doubleTapGesture识别失败的时候(即识别出这不是双击操作),singleTapGesture才能开始识别
        [singleTapGesture requireGestureRecognizerToFail:doubleTapGesture];
    //两个手势分别响应的方法
    -(void)handleSingleTap:(UIGestureRecognizer *)sender{
        NSLog(@"单击");
        
    }
    
    -(void)handleDoubleTap:(UIGestureRecognizer *)sender{
        NSLog(@"双击");
    }

    如果是在cell上添加的视图,则可能与cell点击事件发生冲突,解决办法如下

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
     
        TableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        if (cell.bgView.gestureRecognizers.firstObject.numberOfTouches) {
            NSLog(@"手势响应了");
            return;
        }
        NSLog(@"cell点击");
    }
  • 相关阅读:
    Path expected for join!错误处理
    JPA 不生成外键
    SpringDataJPA
    MyCat-schema.xml详解
    aliyun阿里云Maven仓库地址——加速你的maven构建
    MyCAT简易入门 (Linux)
    CentOS 7 常用命令大全
    mycat 9066管理端口
    MyCat入门
    Virtualbox的centos7 nat和桥接网络配置
  • 原文地址:https://www.cnblogs.com/mapanguan/p/9209176.html
Copyright © 2011-2022 走看看