我正在开发一个应用程序,希望用户快速触摸和滑动多个 UIViews,一旦用户的手指到达它,每个 UIViews 都应该执行一个动作。我有很多视图,所以典型的事情是,我会遍历每个视图以查看触摸是否在其范围内,这是不行的 - 延迟太多了。有没有其他方法可以将触摸事件从一个视图传递到另一个视图(即在第一个视图旁边)?我想也许有一些方法可以取消触摸事件,但我已经搜索过了,到目前为止都是空的。
我遇到的一个大问题是,如果我在我的视图控制器中实现我的触摸处理,touchesBegan 只会在第一次触摸时触发——如果用户触摸了某个东西,然后在不移动第一根手指的情况下点击了其他东西,那么该点击是未记录在 touchesBegan 或 touchesMoved 中。但是,如果我在 UIViews 本身中实现我的触摸处理,一旦视图注册触摸,如果用户没有抬起手指并移动它,第一个视图周围的视图不会注册触摸。只有当用户抬起手指然后放回手指时,周围的视图才会记录触摸。
所以我的问题是,假设我有两个并排的视图,我的触摸处理代码在视图中实现,我将手指放在视图 1 上。然后我将手指滑到视图 2 - 我需要做什么如何让视图 2 注册该触摸,该触摸从视图 1 开始并且从未“结束”?