我有一个 UIScrollView 设置为具有清晰的背景。滚动视图的一部分确实有内容,但一部分没有(因此它显示了后面的其他视图)。我希望能够单击 UIScrollView 并单击后面的 MKMapView,但仅限于 UIScrollView 的透明部分。
我发现了一些代码,我很难理解如何开始工作:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (![self yourMethodThatDeterminesInterestingTouches:touches withEvent:event])
[self.nextResponder touchesBegan:touches withEvent:event];
}
有人可以帮助我思考如何将触摸事件转发到另一个视图后面的视图吗?我可以从 UIViewController 调用 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 吗?
我们所做的是子类化 UIScrollView 并实现逻辑,如果触摸发生在 UIScrollView 内部,则将责任传递给其下的视图。透明的 area.
在我们的例子中,透明区域由 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;
}
}
显然,这个回应已经过了鼎盛时期,但希望这对任何寻找解决方案的人都有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)