2010-02-20 80 views
2

我想通过触摸从自定义UIView传递到下面的UITableView(UIView是直接在UITableView之上)。但是,它似乎并没有工作。UITableView不会接受通过触摸

在我的自定义的UIView,我已经尝试了所有以下的(我使用touchesMoved作为一个例子,但我实现了这所有4个触摸方法)

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self.nextResponder touchesMoved:touches withEvent:event]; 
} 

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { [super 
touchesMoved:touches withEvent:event]; 
} 

我甚至试过路过一个指针的UITableView直接进入自定义的UIView,做这样的:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self.myTableView touchesMoved:touches withEvent:event]; 
} 

这些选项没有人可以做任何事情,因为我不能滚动的UITableView。任何想法为什么这不起作用?

回答

1

如果UIView不是UITableView的子视图,它将不会通过它触发UITableView的响应链。

但是,最有可能的罪魁祸首是一个滚动视图。滚动视图会在将所有触摸发送到子视图之前将其捕获。这是从通常的设置倒退。

由于UITableView使用滚动视图,因此滚动视图可能会在触及UIView之前将其触碰。

为了测试这个,我建议把你的UIView放在“over”,即使它成为普通视图的子视图,并让响应者链像你希望的那样工作。然后换掉UITableView的底部/超级视图,看看它是否仍然有效。

如果没有,问题在于表格嵌入在scrollview中。我不知道这是一个解决方法。