iPhone:点击透明UIScrollView后面的视图

Nic*_*ard 13 iphone uiscrollview uiview uiresponder ios

我有一个UIScrollView设置为具有清晰的背景.scrollview的一部分确实有内容,但部分没有(因此它显示了其背后的其他视图).我希望能够点击UIScrollView和后面的MKMapView,但仅限于UIScrollView的透明部分.

我找到了一些代码,我很难理解如何工作:

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

有人可以帮助我解决如何将触摸事件转发到另一个视图背后的视图吗?我可以调用 - (void)touchesBegan:(NSSet*)从UIViewController触及withEvent:(UIEvent*)事件吗?

Ste*_*rov 9

我们所做的是将UIScrollView子类化并实现将责任传递给其下的视图的逻辑,如果触摸发生在透明区域内.

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

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

显然,这种反应已经过了很长时间,但希望这对寻求解决方案的任何人都有帮助.