zoukankan      html  css  js  c++  java
  • UIGestureRecognizer手势和scrollview冲突的简单解决

    问题:想实现一个TableView里面的cell的拉动露出编辑按钮的功能,用的是UIGestureRecognizer实现的,但是和UITableView的UIScrollView冲突了,导致每次拉动tableView都会调用UIGestureRecognizer的方法。

    解决方案:

    - (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer{

        if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {

            CGPoint vTranslationPoint = [gestureRecognizer translationInView:self.contentView];

            return fabs(vTranslationPoint.x) > fabs(vTranslationPoint.y);//如果手势纵向移动位移比横向位移大则不响应

        }

        return YES;

    }

      其实就是在每个cell里面添加了 gestureRecognizerShouldBegin的筛选条件, 代码中translationInView返回手势移动的位移矢量,另外一个方法velocityInView返回的是手势移动的速度矢量。其实也可以重写TableView中scrollView的相关方法,在有多个UIGestureRecognizer的时候应该采取这种方式。

  • 相关阅读:
    SQL注入(手工篇)
    sed命令
    交互输入与for语句
    编程原理
    grep与正则表达式
    重定向和管道符
    shell_oneday_历史命令相关
    python_01_初识python
    C# 上传文件
    C# in 参数化处理 (记)
  • 原文地址:https://www.cnblogs.com/Kelphizy/p/4015404.html
Copyright © 2011-2022 走看看