我正在构建一个 iOS 应用程序,该应用程序在 UIScrollView 上具有自定义 UIView,而 UIScrollView 又具有子视图。
这是布局结构:
请注意,自定义 UIView(称为“检测到的对象提示视图”)不是 ScrollView 的子视图,它是 UIScrollView 的兄弟视图。我想响应自定义 UIView 上的点击手势,所以我将 UITapGestureRecognizer 添加到 UIView,它适用于点击,但 UIScrollView 永远不会收到任何触摸事件(不响应滚动或缩放手势)。
我google了一段时间,很多人指出,为了让其他视图响应触摸事件,我应该实现以下方法:
- (id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
UIView *hitView = [super hitTest:point withEvent:event];
if (hitView == self){
return nil;
}
else {
return hitView;
}
}
但是一旦我将此方法添加到我的自定义 UIView 中,它也不会响应点击手势(当然)。
所以我想知道如何处理自定义 UIView 上的点击手势并将触摸事件也传递给 UIScrollView?
非常感谢!