如何使用UISwipeGestureRecognizer将“点击”传递到UIView下面的UIButton?

我在(透明)UIView下面有一个UIButton。 上面的UIView添加了一个UISwipeGestureRecognizer,这是它唯一的目的 – 检测某些滑动手势。 我希望UIView忽略所有其他触摸,并传递给其他视图(例如我下面的UIButton)。 目前,上面的UIView似乎正在检测水龙头(例如),什么都不做(应该是这样),并且不让UIButton下面有机会做出响应。

如果可能的话,我宁愿不实现我自己的滑动识别器。 任何解决方案/建议? 我基本上只是想知道如何告诉UIView只注意某种类型的添加手势识别器,并忽略(并因此让后面的视图通过)所有其他触摸。

你有没有设置:

mySwipeGesture.cancelsTouchesInView = NO; 

允许将触摸发送到视图层次结构以及手势?

另外,确保顶部的视图是:

 theTransparentView.opaque = NO; theTransparentView.userInteractionEnabled = YES; 

我已经很好地将手势附加到父视图,而无需在手势的顶部创建透明子视图。 你确定你需要那样做吗?

我一定是昨天一直处于困境中 – 今天我醒来时提出了一个简单的解决方案。 将UISwipeGesture添加到视图,该视图是UIView和UIButton的超视图。 然后,在处理这些滑动时,找出滑动起源的位置,以及该点是否在我曾经拥有UIView的框架中。 (正如我所提到的,UIView存在的唯一原因是为这些滑动手势定义目标区域。)

你不能把你的按钮放在视图的顶部,并为这个按钮添加手势识别器吗?

最后,您的UIButton通过UIControlinheritanceUIViewforms。 因此,几乎没有任何东西可以用视图做,但不能用按钮做。

就我而言,我通过不使用按钮来修复它,而是使用UITapGestureRecognizer。 我的平移手势识别器已添加到背景视图中,并且轻击手势已添加到其上方的视图中。