美文网首页
关于 iOS 嵌套UIScrollview的滑动冲突 的思考

关于 iOS 嵌套UIScrollview的滑动冲突 的思考

作者: 就叫yang | 来源:发表于2019-03-01 20:26 被阅读0次

    嵌套UIScrollview的滑动冲突解决方案
    https://www.jianshu.com/p/040772693872
    iOS 嵌套UIScrollview的滑动冲突另一种解决方案
    https://www.jianshu.com/p/df01610b4e73

    类似于抖音个人中心页面这种

    之前几位大佬的关于嵌套ScrollView的处理方案如上。

    其实,苹果本身是不建议嵌套ScrollView的,并且其实我们不管嵌套怎么处理效果其实都不是完美的理想,都有些许问题。

    1、两个滑动事件过渡的时候很突兀
    2、通过过渡动画去处理过渡冲突,还是会有细小的问题,适配也比较麻烦,重点是必须要做一套适应的动画。

    今天写类似功能的时候看着抖音的个人中心页面发现抖音的一个bug,本着好奇心调了一下bug,突然发现了一个挺简单的实现思路。

    其实很简单一个思路:

    WX20190311-165452.png

    本身我们有一个Base View A

    1、A 里面有 一个使用page分页功能的 scrollView 我们称为 C, 并且edage equal 父类,里面放置两页 tableView D

    2、然后 我们再在 A 里面 加一个HeaderView,比如一个200高度的headerView

    3、然后 把 collectionView的 contentInset 设置为 top 200

    4、scrollDidScroll代理中处理 当 collectionView 滑动的时候 HeaderView与collectionView之间一直保持0距离,这样就相当于有了一个两个 collectionView 公用的 headerView了。

    存在的问题:

    1、由于headerView 是支持事件的,导致在headerView滑动不了底部的collectionView,同时我们不能直接禁用掉事件支持,因为headerView中肯定会放置一些需要响应的按钮之类的元素

    解决:

    重写headerView中的hitTest方法,过滤掉我们需要响应的元素,其他元素的事件就会传递到底部,也就是collectionView上,也就可以正常滑动了

    后续补个demo

    相关文章

      网友评论

          本文标题:关于 iOS 嵌套UIScrollview的滑动冲突 的思考

          本文链接:https://www.haomeiwen.com/subject/sapjuqtx.html