ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> IOS开发 >> iOS scrollView嵌套tableView的手势冲突解决方案

iOS scrollView嵌套tableView的手势冲突解决方案(1/3)

来源:网络整理     时间:2018-10-31     关键词:

本篇文章主要介绍了" iOS scrollView嵌套tableView的手势冲突解决方案",主要涉及到方面的内容,对于IOS开发感兴趣的同学可以参考一下: 在平时项目中,我们经常会碰到类似UIScrollView嵌套UITableView的需求,虽然苹果并不建议这种做法,但是这样的需求在平时工作中还是很常见的。比如...

在平时项目中,我们经常会碰到类似UIScrollView嵌套UITableView的需求,虽然苹果并不建议这种做法,但是这样的需求在平时工作中还是很常见的。比如笔者公司项目之前用到的地方:

可以看到最上面是一块轮播图组件,我也已经整理了一份轮播图组件在github上面,轮播图下面还有若干条其他的内容,而且这几块内容都是后台动态控制显示的,所以这里用UIScrollView设置顶部偏移量实现是很不方便的。最外层我肯定选择使用tableView分区管理来实现。而下面的横向分类页面肯定需要tableView去实现

这样的话问题就来了,先不说下面的横向分页如何实现,这个页面必定需要在一个tableView中嵌套多个不同的tableView,但是如果嵌套了其他的scrollView,就需要我们判断不同条件下让哪个scrollView响应滑动事件,因此这里我们需要解决的就是手势的冲突问题。

最开始想到的是在滑动tableView时候根据偏移量设置scrollEnabled来控制两个tableView的响应,但是会有个问题就是当滚动到顶部时用户必须第二次滑动才可以显示出外层的tableView,这样就会造成一个卡顿的效果,所以这个方法是行不通的。

下面说一下我的解决思路:

这里就直接分为mainTableView和subTableView,设置mainTableView的联动手势UIGestureRecognizer

/**
 同时识别多个手势
 @param gestureRecognizer gestureRecognizer description
 @param otherGestureRecognizer otherGestureRecognizer description
 @return return value description
 */

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

下面的分类pageView是直接使用了封装的page框架FSScrollContentView,在mainTableView的UIScrollViewDelegate方法内判断mainTableView的偏移量,当标题栏滚动到顶部的时候固定mainTableView的偏移量

相关图片

相关文章