ios - UIView 应该捕获点击事件但传递移动事件

标签 ios uiview touch-event

我有两种观点,一种在孩提时代高于另一种。 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/

相关文章:

ios - Storyboard中两个 View 之间的连续/转换,无需导航 Controller

ios - Xcode 任何 3D 引擎持续缓慢的内存增加

ios - UIView 重复 animateWithDuration CPU 100%

objective-c - UIViewController 转换 - objective-c

Android:MotionEvent 需要对 GetHistoricalX 和 GetHistoricalY 进行一些说明

iOS 项目无法编译,因为它找不到 pch 文件,因为我不得不重命名文件夹

ios - 仅在 iOS 16.1 中创建状态变量?

objective-c - iOS - UIView 边框底部宽度?

android - 使用 onTouchEvent Android 旋转、缩放/缩放、拖动位图

android - 在 onTouchEvent 期间检测到没有移动