2015-07-12 59 views
0

手势滚动考虑下图中的视图层次结构:的UIScrollView使用上叠加的视图

enter image description here

OverlayView仅仅是其上具有一些自定义控制的控制图。它还具有多个轻拍/轻扫手势识别器。 ScrollView是滚动视图,需要根据与OverlayView的交互进行滚动。 OverlayViewScrollView具有相同的帧。

我需要一种方法来添加为OverlayView配置的某种滑动/平移手势设置,以便我可以滚动底层的ScrollView,就好像我正在与它进行交互一样。

似乎有两种不同的方法:

  1. 认识上OverlayView手势,并把它传递给ScrollView。但我不确定使用哪种手势以及如何使ScrollView与他们互动。

  2. 忽略OverlayView上的所有接触,除非它们在控件上。通过这些触摸到底层ScrollView。这似乎是更简单的方法;但我不知道如何继续这个。

有没有人有任何样的代码来处理某些项目或类似的练习?如果没有,任何指针?

回答

1

选项2是我要推荐的。您可以在UIView上覆盖一个名为hitTest:withEvent:的方法。

您从中返回一个视图。所以如果触摸需要通过滚动视图然后返回滚动视图。否则返回自我。

+0

这很酷。它确实是我想要的。但有一个小警告。假设我想识别OverlayView上的平移手势。我将如何使用相同的'hitTest:withEvent:'API? – p0lAris

+0

我的意思是肯定它不能用'hitTest:withEvent'完成,但只是想知道是否有其他API可以在这里连接。 – p0lAris