美文网首页
iOS - 滑动视图嵌套处理

iOS - 滑动视图嵌套处理

作者: DivilMayCry | 来源:发表于2018-01-08 11:17 被阅读173次

    iOS 多个滑动视图嵌套的手势触摸处理

    实现思路

    界面设计
    • 前提条件:

      • 页面构成: 整体页面为一个滑动视图, 其中最上方为类似 header 并且包含一个 SegementView 的视图, 下方为多个并列的 TableView 或者 ScrollView 视图
      • 页面需求: 当滑动下方的视图时需要让 header 跟随滑动直到滑动到 segement 时停止滑动, 接下来就只能滑动下方的 tableview 并且可以无限加载数据以及横向切换 tableview , 当向下滑动的时候, 如果滑动到最顶层的时候 header 会跟随出现.
    • 实现思路分析

        1. 通过监听最外层的 ScrollView 的偏移量, 对其 ScrollEnable 属性进行更改, 使滑动手势的作用对象不同, 实现需求.
        1. 通过重写每个视图的 hitTest 函数操作响应实现.
        1. 监听最外层 ScrollView 的偏移量, 通过设置固定的偏移量来保证响应手势的切换.
    • 实验结果

        1. 可以实现需求, 但是因为 ScrollEnable 属性更改之后需要二次滑动才能切换滑动响应视图, 因此, 方案放弃.
        1. hitTest 函数的响应时机只有手指触摸时的第一下, 因此实现过程太复杂, 放弃.
        1. 这个方法不是我想出来的, 而是在查找资料的时候发现的大神思路, 此处放链接, 最终证实有效, 完美解决问题.

    具体实现

    写在最后

    • 最终完成后, 还是有个疑问, 同时存在两个滚动视图, 如果一个滚动视图的偏移量确定, 那么滑动手势就会作用在另一个滚动视图上, 这个规则总感觉有些奇怪, 不过以上的需求完成确确实实是建立在这个规则之上, 所以合理利用这个默认的规则还是有好处的.

    • 作为主视图的 ScrollView 必须要遵守一个手势协议的代理方法, 并返回 YES.

    相关文章

      网友评论

          本文标题:iOS - 滑动视图嵌套处理

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