将点击事件传递给超级视图,但可以长按

时间:2019-05-21 09:12:07

标签: ios swift uikit

我正在尝试将点击事件传递给超级视图,但要处理长按事件。我已经将LongPressGestureRecognizer添加到了顶视图,但是tap事件没有传递到超级视图。我尝试了多种方法:

  • 由于未按下longpress手势识别器处理程序,因此无法覆盖hitTest
  • isUserInteractionEnabled-与上面相同
  • 覆盖touchesBegan / Ended并在超级视图上手动调用它们不会触发点击事件

1 个答案:

答案 0 :(得分:1)

处理复杂的分接头交互可能很困难,而混合使用不同的方法可能会变得更加困难。

通常,处理此问题的最佳方法是拥有一个视图,该视图上具有多个手势识别器。实现UIGestureRecognizerDelegate方法gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:)gestureRecognizer(_:shouldRequireFailureOf:)以处理冲突。识别到触摸事件后,它可以将动作委派给其他需要处理的对象。具有不同观点的所有人都试图同时处理触摸不是解决问题的好方法。手势与其他手势相关,并且不能全部由不同的视图独立处理。