我正在使用自定义UIGestureRecognizer
子类来跟踪课堂上的手势InfoView
。该类InfoView
是一个UITableViewCell
名为 的自定义子类的子视图InfoCell
。
我已将手势识别器添加到我的根视图(屏幕上其他所有内容的父视图,因为我的自定义手势识别器的目的是允许InfoCell
在表格之间拖动视图)。现在,除了一件事,一切都按原样进行。我在我的UIGestureRecognizer
子类中使用以下代码来检测视图上的触摸InfoView
:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UIView *touchView = [[touches anyObject] view];
if ([touchView isKindOfClass:[InfoView class]]) {
// Do stuff
}
这里的问题是对象上的触摸InfoView
被拦截,因此它们没有被转发到UITableView
包含 的InfoCell
,这是 的父视图InfoView
。这意味着我不能再通过拖动视图来滚动表格视图InfoView
,这是一个问题,因为InfoView
覆盖了整个InfoCell
.
有什么办法可以将触摸转发到表格视图上以便它可以滚动?我已经尝试了很多东西:
[super touchesBegan:touches withEvent:event];
[touchView.superview.superview touchesBegan:touches withEvent:event];
(touchView.superview.superview
获取对其父级的引用UITableView
)
但到目前为止没有任何效果。此外,cancelsTouchesInView
myUIGestureRecognizer
的属性设置为NO
,因此不会干扰触摸。
帮助表示赞赏。谢谢!