两个滑动手势冲突处理

手势的话,有一个可以解决这个问题的API方法,如果otherGestureRecognizer这个手势没有执行成功的话,才会执行调用这个方法的手势。

- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer
- (UIScreenEdgePanGestureRecognizer *)screenEdgePanGestureRecognizer//获取边缘返回手势
{
    UIScreenEdgePanGestureRecognizer *screenEdgePanGestureRecognizer = nil;

    if (self.navigationController.view.gestureRecognizers.count > 0) {
        for (UIGestureRecognizer *recognizer in self.navigationController.view.gestureRecognizers){
            if ([recognizer isKindOfClass:[UIScreenEdgePanGestureRecognizer class]]) {
                screenEdgePanGestureRecognizer = (UIScreenEdgePanGestureRecognizer *)recognizer;
                break;
            }
        }
    }
    return screenEdgePanGestureRecognizer;
}我们在操作滚动视图的时候的,只要滚动视图的手势能够触发,就不会执行滑动返回的那个手势,并且除了这个滚动视图外,在其他地方对滑动返回没有影响。
[[self screenEdgePanGestureRecognizer] requireGestureRecognizerToFail:self.scrollView.panGestureRecognizer];
 
时间: 2024-12-21 08:59:36

两个滑动手势冲突处理的相关文章

iOS解决嵌套在ScrollView中的TableView滑动手势冲突问题

最近在迭代开发公司项目的时候遇到了一个问题,在可以左右切换标签视图的ScrollView中嵌套了两个TableView用于展示视图,感觉一切so easy的情况下,问题出现了,因为左右两个视图既可以实现标签切换,其中TableView还需要侧滑删除功能,那么问题来了,滑动手势懵逼了,这是要搞事情啊!他无法识别到底要做什么处理,因为滑动手势冲突了,下面简单介绍一下解决思路: 大致的项目需求如上图所示: 经过一番资料的查阅,解决办法就是继承自UIScrollView,重写UIScrollView类:

iOS 手势冲突

UITableView以及ScrollView不能相迎TouchBegin处理 IOS开发之手势--UIGestureRecognizer 共存 // 关键在这一行,如果双击确定偵測失败才會触发单击 [singleRecognizer requireGestureRecognizerToFail:doubleRecognizer]; 关于UIScrollView不能响应UITouch事件的解决办法 覆盖touch事件 ios的手势操作之UIGestureRecognizer浅析 UITapGes

解决ViewPage中嵌套有ListView或者滑动手势等造成滑动的冲突

public class ViewPagerCompat extends ViewPager { //mViewTouchMode表示ViewPager是否全权控制滑动事件,默认为false,即不控制 private boolean mViewTouchMode = false; public ViewPagerCompat(Context context, AttributeSet attrs) { super(context, attrs); } public void setViewTou

解决右滑返回手势和UIScrollView中的手势冲突

项目中遇到一个页面中是以一个scrollview横向Tab展示两个不同功能的显示,譬如消息和公告功能,但是由于滑动返回手势和scrollview的滑动返回手势冲突了,导致页面不再能够滑动返回.类似的还有图片浏览功能也出现过. iOS系统中,滑动返回手势,其实是一个UIPanGestureRecognizer,系统默认的操作是只有滑动屏幕的左边的某个位置,UIPanGestureRecognizer才会起作用.UIScrollView的滑动手势也是UIPanGestureRecognizer.那在

简单灵活解决 Viewgroup嵌套 产生的手势冲突问题

转载请标明原文地址:简单灵活解决 Viewgroup嵌套 产生的手势冲突问题 这是接着上一篇Android 下拉刷新上拉加载 多种应用场景 超级大放送(上)的,这里介绍一下怎么 简单灵活解决Viewgroup嵌套产生的手势冲突问题.虽然这里只是以ViewPager为例,但是提供了一种解决此类问题的通用思路. 先来看一下网易新闻客户端的界面效果: 当手势方向为蓝色箭头区域方向时,响应ListView的滑动 当手势方向为黄色箭头区域方向时,响应ViewPager的图片滑动 上一篇实现的Demo效果图

JSON、数据存储、对象唯一和手势冲突

有时候加载数据的时候,后台正常返回了,安卓正常显示了,可是无论是加载更多还是访问数据,就是加载不了那么多.这时候就要考虑是不是JSON中有哪些是iOS不支持的特殊标记或者字符了,别再苦苦找代码逻辑,语法错误了,特别是那种原来没问题,现在有问题的.不要管别人是否暗示你,咋我设备就行,你咋显示不了,是不是你技术不行.明确告诉他,不是,可能是数据的问题. 有时候你需要保存一个数据,例如时间,你需要在启动的时候就保存一下时间,然后每次启动都在和这个时间做比较,可是怎么能让你保存的时间不被系统启动时不断的

Android 滑动手势简单使用方法

用法:首先让指定的Activity实现Android.view.OnGestureListener,然后在你需要调用GestureDetector的View上,添加onTouchListener,之后setLongClickable(true)即可. 如: customView.setOnTouchListner(xxxListener); customView.setLongClickable(true); 之后就可以在onFling方法中设置你想要的手势. onFling方法参数解释: on

UICollectionView与UITableView混用手势冲突

前言 最近在重构某个模块,以后别人封装的所谓的基类就像一坨死一样,看见就恶心,相信同行的你们能够明白那种心情.为什么要重构?并不是真的因为它像一坨死,而是因为这个模块是用户使用最频繁的,而且出现了不少bug,最重要的是这bug还是p1级别的致命bug. 曾经经过了几天的压力测试都没有复现出来,但是用户却频繁反馈,这就是决定重构的原因了.重构的界面是这样的: 当UICollectionView中的每个cell放的是一个controller.view而这个controller.view又放一个UIT

当ViewPager嵌套在ScrollView/ListView里时,手势冲突如何处理?

有时我们需要将ViewPager嵌套在其他已经含有手势动作的ViewGroup里,如ScrollView,ListView时,会造成手势冲突,如表现为ViewPager向左划时,不小心向上移动了一点距离,ViewPager立刻回弹到原始位置. 主要问题出在ScrollView/ListView作为ViewPager的ParentView,会先接受到触摸信息,而且他们对上下滑动是会做出拦截动作,并接管触摸信息的向下传递,导致ViewPager滑动异常. 先看一种解决方式: public class