背景情况:
loadView时创建一个scroll作为VC的view.叫BaseScroll
- 上部分为两部分,一个是展示信息部分。
�* 一个是需要悬停的部分。
需要悬停
- 最下部是一个ContentScroll。包含两个table
现在的需求是
-
当悬停部分不在NavigationBar底部时,table执行上拉操作。table不作响应。由scroll做响应,如果scroll的contentSize足够,可以将悬停部分拉到顶部NavigationBar下方(即改变baseScroll的contentSet),悬停部分不动,如继续上拉则有table响应,滚动table的cell。如果scroll的contentSize不够,悬停部分拉上去(接触不到NavigationBar)后回弹。(table下拉将baseScroll拉回初始位置即contentOffset为0)
悬停部分不在NavigationBar底部 -
当悬停部分在NavigationBar底部时,table下拉时,如果table的contentOffset 不为0,即已显示table的第一条数据时。由scroll响应事件,将悬停部分拉下来。(table上拉由table响应)
悬停部分在NavigationBar底部
目前的问题是
-
如果在scroll的代理方法里处理,事件已经传递到table上,此时不能让baseScroll处理事件。
-
如果在scroll的hit方法里处理响应者,无法判断当前事件是滑动还是触摸。因为baseScroll上部有按钮需要点击。
以上。再次表示感谢。
后记
判断手势是否响应暂时用手势处理解决需求,但不完美。有时会出现移动量为0而达不到理想效果的情况。核心代码如下:
网友评论
这个效果是一样的