• 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点击");
    }
  • 相关阅读:
    webservice时间类型XMLGregorianCalendar和Date的转换
    webservice中jaxws:server 和jaxws:endpoint的区别
    使用CXF开发JAX-WS类型的WebService
    使用TCP/IP Monitor监视Soap协议
    Webservice优缺点总结
    WebService两种调用方法
    DOS命令运行java文件,批量引用jar包
    eclipse创建的maven项目无法部署到tomcat
    图片翻转效果
    掷骰子效果
  • 原文地址:https://www.cnblogs.com/mapanguan/p/9209176.html
Copyright © 2020-2023  润新知