我正在使用自定义UIGestureRecognizer
子类跟踪我的InfoView
类中的手势。 InfoView
类是名为InfoCell
的自定义UITableViewCell
子类的子视图。UIGestureRecognizer阻止表视图滚动
我已经将我的手势识别器添加到了我的根视图(屏幕上所有其他视图的父视图,因为我的自定义手势识别器的用途是允许在表之间拖动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
)
但迄今没有奏效。此外,我的UIGestureRecognizer
的cancelsTouchesInView
配置设置为NO
,因此不会干扰触摸。
帮助表示赞赏。谢谢!
这个固定事情我,当我有同样的问题,谢谢 – 2010-11-01 15:24:42
我一直在打我的脑袋上就这一个墙。谢谢 ! :D – Legolas 2012-08-31 17:38:35