当前位置:   article > 正文

论scrollView里button TouchDown的问题_button_touchdown

button_touchdown

最近做一个功能,在一个scrollView里一些buttons,其中一个button要求响应touchDown事件。

但是当实际做的时候发现,当在button上快速滑动时,button是不会响应touchDown事件的!原来是因为scrollView优先处理pan手势,如果150ms内检测为pan手势,那么就不响应touchDown事件了;反之,会响应touchDown.

解决方法是

        _scrollView.delaysContentTouches = NO;
但是又出现了新的问题!因为只有一个button需要响应touchDown事件,其它按钮是不需要的。那么当在其它按钮上滑动时,scrollView页面不动了!!!!只有在空白的地方才能滑动页面!!很纠结!即便我重写button的touchBegin事件也不管用!!!

解决方法:重写scrollView

  1. - (BOOL)touchesShouldCancelInContentView:(UIView *)view {
  2. return YES;
  3. }

      使用这个方法后touchDown和pan都会同时响应!



注意:

1.这个方法有个缺陷,如果在不需要touchDown按钮上滑动时,因为会响应touchDown,会导致按钮高亮!正常讲是不应该高亮的!不过这个小缺点还是能忍受的!

2.最好的方法是:delaysContentTouches不用改,然后重写scrollView的touchBegin方法,再写delegate通知指定按钮响应touchDown事件!就是复杂了一点~~~~
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/93622
推荐阅读
相关标签
  

闽ICP备14008679号