ScrollView、TableView、CollectionView 联动一种实现思路
ScrollView、TableView、CollectionView 联动一种实现思路
首先看看效果:
- 带悬停View头部的类型,可以上下拉刷新
2.不带悬停View头部的类型,可以上下拉刷新
(PS.图床上传GIF有问题,经常出现卡死问题,直接运行DEMO比较直观)
→ Demo地址
联动思路实现
核心思路
大部分处理方案
由于联动是在最底部的 ScrollView
上面添加一个 TableVIew
或者 CollectionView
之类的, 最大难点就是 手势
处理 . 嵌套 ScrollView
之后,需要一个条件来控制某个具体时刻那个 ScrollView
响应滑动事件。
通常,我们会在 ScrollView
代理方法里面
1 | - (void)scrollViewDidScroll:(UIScrollView *)scrollView { |
例如,我们会实现这样一个逻辑,最底部有一个 mainScrollView
, mainScrollView
上有一个 SubScrollView
, 这样就类似一个双 ScrollView
嵌套场景了
1 | //写个伪代码 |
代理方法里面 scrollViewDidScroll
中进行判断,当 mainScrollView
划出了 maxOffsetY
,停止响应滚动,继续滑动时候,就是 subScrollView
响应滚动了
但是,在实际操作上有个很大问题,使用者并不是总能滑动到 maxOffsetY
地方,停下手,进行下一次滑动,如果滑动大于 maxOffsetY
地方, mainScrollView
就会滚动到 maxOffsetY
之后,停止响应,是因为这是一次手势, subScrollView
也不会响应,使用者就有中断感觉,需要第二次滑动才能继续滚动