iOS的一种多tableview左右滚动,以及tableview上下滚动悬挂效果(嵌套scrollview布局)

项目中碰到了这种效果,以qq为例

   

该页面需要实现的效果是好友,群聊,设备,通讯录以及公众号五个tab能实现左右滚动,并且还需要能够从新朋友开始上下滑动。并最终将前面的五个tab悬挂在顶部。


在网上查了一下,找到了两种比较合适的解决方案。

1.


这种页面布局比较容易想到,也确实能够实现所需要的效果,但是需要解决的问题就是上下的两个tableview之间的手势冲突,保证滑动绿色的第一个tableview的时候能够让底下的那个tableview也能同时滑动

具体实现步骤可以参考一下该地址:http://www.shunfski.com/2017/06/07/FSScrollViewNestTableView/,该案例的控制逻辑相对简单。但是这种布局的实现效果有一些缺点。比如上下滑动的时候无法实现非常流畅的滚动,又比如在底部tableview的上半部分滑动tableview的时候由于没有滑动绿色部分的tableview导致绿色部分的tableview滑到顶部的时候突然停下了。


2.


目前来看这种布局能够解决第一种布局产生的不足,该布局中,view和scrollview位于同一视图层级而并非父子关系,并且需要设置tableview的contentinsets来使绿色的tableview顶部的初始位置位于黑色的view下方,之后绿色tableview上下移动的时候需要保证黑色view和绿色tableview的contentoffset移动距离保持一致。

至于具体的代码实现,难点不多这里就省了。

猜你喜欢

转载自blog.csdn.net/arceushs/article/details/79841315