찾다

 >  Q&A  >  본문

iOS手势,触摸事件的传递问题

我是希望封装一个控件,它是可以上下滑动的.
可以设置一定的偏移高度,是对顶部高度100的内容自动进行隐藏和显示,假如设置100.
向上滑动时优先隐藏100高度上的内容,向下滑动时优先显示这100高度
就算子内容里面有scrollView,那么滑动scrollView时,无论向上还是向下,都优先满足该控件的顶部操作,然后再scrollView内部内容滑动。

目前我用了ScrollView作为控件的基本使用
可是对于这几个方法的处理尝试了一下,也无法达到我想要的效果

// @property(nonatomic) BOOL delaysContentTouches;   
// @property(nonatomic) BOOL canCancelContentTouches;
// - (BOOL)touchesShouldBegin:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event inContentView:(UIView *)view;
// - (BOOL)touchesShouldCancelInContentView:(UIView *)view;

比如我的控件内部主要分为2部分,上部分类似于广告,下部分是子界面,子界面高度就跟控件一样高,而且我的控件是不能滑出去的,能滑动的距离也就100高度而已。如果内部有scrollView或者listView的下拉刷新,用户在拉的时候,若广告已经出来了,就能下拉刷新了,若广告没有出来,用户一下是先慢慢出现广告,继续拉的时候才内部的scrollView的下拉才出来

高洛峰高洛峰2887일 전391

모든 응답(1)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-17 17:50:44

    제대로 이해했다면 귀하의 요구사항은 일반적인 숨겨진 탐색 표시줄과 유사해야 합니다. 예를 들어 기사를 읽을 때 Jianshu 앱의 탐색 표시줄과 작성자 정보는 위로 스크롤할 때 숨겨지고 스크롤할 때 숨겨집니다. 내려.

    이것은 별도의 레이어에 있습니다. "아래로 슬라이딩할 때 이 100개의 높이를 먼저 표시"하려는 경우 슬라이딩 콘텐츠와 동일한 레이어에 있지 않다는 의미입니다. 슬라이딩 콘텐츠 위의 한 레이어입니다.

    일반적으로 스크롤 방향을 결정하기 위해 didScroll 콜백 이벤트에서 처리되거나 KVC가 scrollView의 contentOffset을 모니터링합니다.

    회신하다
    0
  • 취소회신하다