UIScrollView 在覆盖视图上使用手势滚动

UIScrollView scrolling using a gesture on the overlaid view

考虑下图中的视图层次结构:

OverlayView 只是一个控件视图,上面有一些自定义控件。它还具有多个 tap/swipe 手势识别器。 ScrollView 是根据与OverlayView 的交互需要滚动的滚动视图。 OverlayViewScrollView.

具有相同的框架

我需要一种方法来添加为 OverlayView 配置的某种 swipe/pan 手势设置,这样我就可以滚动底层 ScrollView,就好像我正在与之交互一样。

似乎有两种不同的方法:

  1. 识别OverlayView上的手势并将其传递给ScrollView。但我不确定使用什么手势以及如何让 ScrollView 与它们互动。

  2. 忽略 OverlayView 上的所有触摸,除非它们在控件上。将这些接触传递给底层 ScrollView。这似乎是更简单的方法;但我也不确定如何进行。

有没有人有他们以前从事过的某个项目或类似练习的任何类型的示例代码?如果没有,有什么指示吗?

选项 2 是我要推荐的。您可以在 UIView.

上重写一个名为 hitTest:withEvent: 的方法

你return一个观点吧。因此,如果触摸需要通过滚动视图,则 return 滚动视图。否则 return self.