cocoa-touch – UIGestureRecognizer阻塞表视图滚动

我正在使用自定义的UIGestureRecognizer子类来跟踪我的InfoView类上的手势. InfoView类是名为InfoCell的自定义UITableViewCell子类的子视图.

我已经将我的手势识别器添加到我的根视图(屏幕上其他所有内容的父视图,因为我的自定义手势识别器的目的是允许在表之间拖动InfoCell视图).现在,一切都有效,除了一件事.我在我的UIGestureRecognizer子类中使用以下代码来检测InfoView视图上的触摸:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UIView *touchView = [[touches anyObject] view];
    if ([touchView isKindOfClass:[InfoView class]]) {
        // Do stuff
    }

这里的问题是InfoView对象上的触摸被截获,因此它们不会被转发到包含InfoCell的UITableView,后者是InfoView的父视图.这意味着我无法再通过拖动InfoView视图来滚动表视图,这是一个问题,因为InfoView涵盖了整个InfoCell.

有什么方法可以将触摸转发到表格视图,以便它可以滚动?我已经尝试了很多东西:

[super touchesBegan:touches withEvent:event];

[touchView.superview.superview touchesBegan:touches withEvent:event]; (touchView.superview.superview获取对其父UITableView的引用)

但迄今为止没有任何工作.此外,我的UIGestureRecognizer的cancelsTouchesInView属性设置为NO,因此不会干扰触摸.

感谢帮助.谢谢!

查看UIGestureRecognizerDelegate方法: – (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

如果返回YES,则会阻止您的手势识别器踩踏UIScrollView用于检测滚动的手势识别器.

相关文章
相关标签/搜索