UIScrollView嵌套TableView手势冲突问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIScrollView嵌套TableView手势冲突问题相关的知识,希望对你有一定的参考价值。

参考技术A 1、 UIScrollView 里面嵌套两个 tableView ,右边一个 tableView 又要实现左滑删除功能,写好左滑删除的代理方法,准备调试... 发现 tableView 左滑失效了,调试发现原来是 UIScrollView 的滑动手势和 tableView 的左滑手势冲突了。

2、写了一个继承 UISrollView 类 MyScrollView ,在里面重写

(上面方法是UIGestureRecognizerDelegate有两个没公开的函数之一,只要重载了就会被调用,是可以通过appstore审核的)
调试输出发现 return NO 会忽略 otherGestureRecognizer 手势(被拦截) ; return YES 则会调用 otherGestureRecognizer 的方法(不拦截);但是需求是 cell 左滑的手势可以执行,而不是所有的手势;单纯的 return YES 会造成 UISrollView 无法左右滑动。

3、知道上面的的问题,那我们只需要判断 如果 otherGestureRecognizer 是 cell 左滑的手势 return yes 即可,其他 return no 。 通过调试打印发现

我们发现其中有个 UITableViewWrapperView 这个就是我们要找的 view ,然后我们在方法里面做个判断:

大功告成...调试发现cell可以实现左滑。

通过上面的私有方法,也可以去解决 UIScrollView 滑动与 UINavigationVIewController 的手势返回的冲突(自己研究下吧!)

以上是关于UIScrollView嵌套TableView手势冲突问题的主要内容,如果未能解决你的问题,请参考以下文章

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

iOS开发中解决UITableView嵌套ScrollView(UICollectionView)的手势冲突

UIScrollView 嵌套UITableView 左滑删除和UIScrollView滑动冲突

tableView的嵌套

三种UIScrollView嵌套实现方案

UIScrollView及其子类的嵌套联动