【问题标题】:UIView should catch tap event but pass on moving eventsUIView 应该捕获点击事件但传递移动事件
【发布时间】:2012-12-03 13:35:48
【问题描述】:

我有两种观点,小时候一种高于另一种。 View1--->View2(View1 有 View2 作为孩子)

如何编写此功能? 1) 如果用户在 View2 上点击 - 所以正确的消息被点击:发送到 View2; 2)如果用户只是在 View1(包括 View2)上移动手指 - 事件传递给 View1 以便它可以处理 touchesBegan: 等等。

所以我要编写的代码是,如果触摸很短,则创建一个函数“[View2 tapped:...]”,如果触摸正在移动,则创建另一个函数([View1 touchesBegan:..] 等等)。

在我的情况下,如果我将手指移到 View2 上 - 它永远不会将事件传递给 View1。

附:我没有重写 hitTest 或任何东西。

【问题讨论】:

    标签: ios uiview touch-event


    【解决方案1】:

    Gesture recognizers 非常优雅地处理这种逻辑。在 view2 上有一个 UITapGestureRecognizer,然后在 view1 上做任何你想做的事情(例如 UIPanGestureRecognizer)。这会处理您需要的所有“哪些手势被哪些视图识别”逻辑。

    【讨论】:

      【解决方案2】:

      你应该看看UIGestureRecognizers。其中之一是UITapGestureRecognizer - 捕获目标UIView 的点击。使用起来非常简单。看苹果documentation.

      【讨论】:

      • 感谢您的有用建议!
      猜你喜欢
      • 1970-01-01
      • 2019-11-17
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多