有时UIGestureRecognizer手势识别不出来问题分析及方案

有时我们添加的UIGestureRecognizer识别不出来,分析原因至少有以下三种可能:

  1. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;
  2. - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer;
  3. - (BOOL)canBePreventedByGestureRecognizer:(UIGestureRecognizer *)preventingGestureRecognizer;

对应序号,分别解释:

  1. 一次手势动作,有可能触发多个手势时,这个接口询问这些手势能否并存。
  2. eg:一个横向的scrollview A,内有个竖向的自scrollview B,一次斜的swipe手势(本意是想横滑),可能只响应B的竖向滑动,你期望的A的横向却没发生。
  3. 解决方案:在该接口中识别你的手势,并return YES。注意不要扩大化了。
  4. 手势可能发生的条件,比如某些特殊情况下,不想让此手势发生,就return NO了。
  5. 有的手势之所以没发生,是因为它被别的手势阻止了。典型的如UITapGestureRecognizer手势,一个UITapGestureRecognizer永远不会阻止一个更高tap次数的UITapGestureRecognizer.
原文地址:https://www.cnblogs.com/ChouDanDan/p/5039721.html