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手势冲突问题的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发中解决UITableView嵌套ScrollView(UICollectionView)的手势冲突