Scroll的响应链问题

背景情况:

loadView时创建一个scroll作为VC的view.叫BaseScroll

  • 上部分为两部分,一个是展示信息部分。
展示信息

�* 一个是需要悬停的部分。


需要悬停
  • 最下部是一个ContentScroll。包含两个table
ContentScroll
现在的需求是
  1. 当悬停部分不在NavigationBar底部时,table执行上拉操作。table不作响应。由scroll做响应,如果scroll的contentSize足够,可以将悬停部分拉到顶部NavigationBar下方(即改变baseScroll的contentSet),悬停部分不动,如继续上拉则有table响应,滚动table的cell。如果scroll的contentSize不够,悬停部分拉上去(接触不到NavigationBar)后回弹。(table下拉将baseScroll拉回初始位置即contentOffset为0)


    悬停部分不在NavigationBar底部
  2. 当悬停部分在NavigationBar底部时,table下拉时,如果table的contentOffset 不为0,即已显示table的第一条数据时。由scroll响应事件,将悬停部分拉下来。(table上拉由table响应)


    悬停部分在NavigationBar底部
目前的问题是
  1. 如果在scroll的代理方法里处理,事件已经传递到table上,此时不能让baseScroll处理事件。

  2. 如果在scroll的hit方法里处理响应者,无法判断当前事件是滑动还是触摸。因为baseScroll上部有按钮需要点击。

以上。再次表示感谢。

后记

暂时用手势处理解决需求,但不完美。有时会出现移动量为0而达不到理想效果的情况。核心代码如下:

判断手势是否响应

推荐阅读更多精彩内容

  • 想起来,爸年轻时候脾气挺暴躁的,我们都怕他。虽说我是他们的小棉袄总是要受宠一些,但是爸一瞪起眼来,照样大气不敢出的...
    两个栗子阅读 97评论 4 4
  • https://zhuanlan.zhihu.com/p/21399808
    董江阅读 33评论 0 0
  • 文/Yanjun 接上篇:《学在约克(一)——在英国读语言学的困惑》 记得五月在犹豫要选约克还是利兹的时候,王同学...
    Yanjun阅读 952评论 0 9
  • 今夕何夕 我的思念沉入黑夜,看 一轮圆月缓缓升起 清清的冷遮住岁月无情的伤 一朵去年开过的花向我 招手示意。仿佛 ...
    蔚霐_d38f阅读 78评论 3 6
  • ◆★◆一花一木是上海家化最年轻的品牌,是时尚、高品质、独特肤感的产品。由上海家化特邀首屈一指的日本贵妇级化妆品之父...
    2e88c3f0026c阅读 424评论 3 0