recherche

Maison  >  Questions et réponses  >  le corps du texte

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 Il y a quelques jours398

répondre à tous(1)je répondrai

  • 天蓬老师

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

    Si je comprends bien, vos besoins devraient être similaires à la barre de navigation cachée commune. Par exemple, la barre de navigation et les informations sur l'auteur sur l'application Jianshu lors de la lecture d'un article sont masquées lorsque vous faites défiler vers le haut et sont masquées lorsque vous faites défiler. vers le bas.

    C'est sur un calque séparé. Si vous souhaitez "afficher ces 100 hauteurs en premier lorsque vous glissez vers le bas", cela signifie que ce n'est pas sur le même calque que le contenu coulissant. C'est une couche au-dessus du contenu coulissant.

    Habituellement, il est traité dans l'événement de rappel didScroll pour déterminer la direction de défilement, ou KVC surveille le contentOffset de scrollView.

    répondre
    0
  • Annulerrépondre