项目中碰到了这种效果,以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移动距离保持一致。
至于具体的代码实现,难点不多这里就省了。
本文探讨了iOS应用中一种特殊的界面布局方案,即如何实现顶部Tab栏左右滑动及内容区域上下滑动的效果。文章提供了两种解决方案:一是通过嵌套TableView实现,但存在手势冲突等问题;二是采用独立ScrollView与TableView结合的方式,解决了流畅性问题。
&spm=1001.2101.3001.5002&articleId=79841315&d=1&t=3&u=675302323b6d478d80b4ca0ecae32e02)

被折叠的 条评论
为什么被折叠?



