iPhone:在透明的UIScrollView后面点击view

我有一个UIScrollView被设置为具有清晰的背景。 部分scrollview有内容,但部分不(因此它显示其他视图)。 我希望能够点击UIScrollView和后面的MKMapView,但只能用于UIScrollView的透明部分。

我发现了一些代码,我真的很难理解如何工作:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { if (![self yourMethodThatDeterminesInterestingTouches:touches withEvent:event]) [self.nextResponder touchesBegan:touches withEvent:event]; } 

有人能帮我把我的想法包括在如何将一个触摸事件转发到另一个视图背后的视图吗? 我可以调用 – (void)touchesBegan:(NSSet *)从UIViewController触及事件:(UIEvent *)事件?

我们所做的就是对UIScrollView进行子类化,并实现将责任下移到其下的视图的逻辑,如果触摸发生在透明区域内部的话。

在我们的例子中,透明区域由Y轴上的120的contentOffset定义,这意味着我们的内容从UIScrollView开始的120个点开始,代码如下所示:

 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { if (self.contentOffset.y < 0 && point.y < 0.0) { return NO; } else { return YES; } } 

很显然,这个反应已经过去了,但希望这对任何寻求解决scheme的人都有帮助。

基本上,由您来决定什么触摸事件,你关心转发到另一个响应者。 如果您只是想要转发所有触摸事件,只需删除您发布的代码中的if语句,以便下一个响应者将接收所有触摸事件。