iOS ScrollView嵌套TableView联动滑动的实现方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS ScrollView嵌套TableView联动滑动的实现方案相关的知识,希望对你有一定的参考价值。

参考技术A 最近公司项目中要开发一个Scrollview嵌套多个TableView的页面。类似下图微博的这种页面。

开发这样的结构会有一个问题就是滑动TableView到边界的时候,由于响应链问题,不会带动Scroll1继续滑动。最开始打算的是通过两个滑动视图的偏移量来设置他们的 scrollEnabled ,切换响应者,以达到两个视图只有一个在滑动的目的。但是这样的话如果滑到顶部边界时,需要抬手再次进行滑动的才可以切换 scrollEnabled 的状态,这种滑动不流畅的效果显然不是我需要的。

后来发现苹果有提供实现多个嵌套的 UIScrollView 同时响应滑动事件的方法。在父视图的ScrollView实现这个方法然后 return YES 即可。

这样上滑时就可以首先固定TableVIew的偏移量,TableVIew滑动到顶部时再允许其滑动,然后固定ScrollVIew的偏移量,下滑同理。

在滑动到边界时,通过通知,也可以根据具体需求调整为通过代理来改变两个视图的 CanScroll 状态,来实现两个视图由谁来滑动的目的。

父视图ScrollVIew的滑动代理方法:

子视图TableVIew的滑动代理方法:

以上是关于iOS ScrollView嵌套TableView联动滑动的实现方案的主要内容,如果未能解决你的问题,请参考以下文章

iOS ScrollView嵌套TableView联动滑动的实现方案

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

ios 中tableview和scrollView的区别

ios监听ScrollView/TableView滚动的正确姿势

ios通过容器视图调整scrollview的大小,里面有tableview

iOS LeftMenu抽屉效果与ScrollView共存时的手势冲突