我有两种观点,一种在孩提时代高于另一种。 View1--->View2(View1有View2作为 child )
如何编写此功能的代码? 1) 如果用户在 View2 上点击 - 所以点击了正确的消息:发送到 View2; 2) 如果用户只是将手指移到 View1(包括 View2)上 - 事件传递给 View1,以便它可以处理 touchesBegan:等等。
所以我要编写的代码是,如果触摸很短,则编写一个函数“[View2 tapped:...]”,如果触摸正在移动,则编写另一个函数([View1 touchesBegan:..] 等等)。
在我的例子中,如果我将手指移到 View2 上 - 它永远不会将事件传递给 View1。
附言我没有重写 hitTest 或任何东西。
最佳答案
Gesture recognizers非常优雅地处理这种逻辑。有一个UITapGestureRecognizer
在 view2 上,在 view1 上做任何你想做的事(例如 UIPanGestureRecognizer
)。这会处理您需要的所有“哪些 View 可以识别哪些手势”逻辑。
关于ios - UIView 应该捕获点击事件但传递移动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13684386/