UIView应该抓住点击事件但传递移动事件

时间:2012-12-03 13:35:48

标签: ios uiview touch-event

我有两个观点,一个在另一个上面作为一个孩子。 View1 ---> View2(View1将View2作为孩子)

我该如何编写此功能? 1)如果用户在View2上进行了TAP,那么点击正确的消息:发送到View2; 2)如果用户只是将手指移到View1(包括View2)上 - 事件传递给View1,那么它可以处理touchesBegan:等等。

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

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

P.S。我没有重写hitTest或其他任何东西。

2 个答案:

答案 0 :(得分:1)

你应该看看UIGestureRecognizers。其中一个是UITapGestureRecognizer - 抓住目标UIView的水龙头。它使用起来非常简单。看看Apple documentation.

答案 1 :(得分:1)

Gesture recognizers非常优雅地处理这种逻辑。在view2上有UITapGestureRecognizer,并在view1上执行任何操作(例如UIPanGestureRecognizer)。这需要处理所有“你需要什么样的手势识别”逻辑。