【问题标题】:iOS: UIVIew touches delegates vs single tap recognizeriOS:UIVIew 触摸代表与单击识别器
【发布时间】:2013-01-07 15:33:54
【问题描述】:

我正在处理Touches 代表和UITapGestureRecognizer 进行单击。以下是方法。当我单击我的视图时,我得到三个事件,依次为TouchesBegan、SingleTap 和TouchesEnded。当我检测到SingleTap 时,是否有停止TouchesEnded 事件?如果TouchesMoved 没有发生,我基本上不想在TouchesEnded 中执行任务。我已经使用 SingleTap 中的 failTouchEnded BOOL 变量完成了这项工作,并在 TouchesEnded 中进行了检查,但不确定这是否是个好主意!

   - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    }

    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
          failTouchEnded = NO;
    }

    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
          if(failTouchEnded) return;

    }

    - (void)GestureView:(GestureView*)view handleSignleTap:(UITapGestureRecognizer*)recognizer {
          failTouchEnded = YES;
    }

【问题讨论】:

  • 你的想法是对的......我总是用它来解决类似的问题!
  • 太棒了!我想知道可能有类似的 requireGestureRecognizerToFail 方法!

标签: ios uiview uitapgesturerecognizer touchesbegan touchesmoved


【解决方案1】:

gestureRecognizer 有一个属性 cancelsTouchesInView。如果是 YES(这是默认值),如果手势识别器识别出手势,则取消触摸。因此,您将取消触摸而不是结束触摸。如果不是 YES,您也应该将 delaysTouchesEnded 设置为 YES

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 2010-11-29
    • 2023-02-05
    • 2018-08-19
    • 2019-08-05
    相关资源
    最近更新 更多