UIScrollView 中的触摸事件发送到后面的 tableview

Posted

技术标签:

【中文标题】UIScrollView 中的触摸事件发送到后面的 tableview【英文标题】:Touch event in UIScrollView send to back tableview 【发布时间】:2011-01-12 21:53:42 【问题描述】:

我有一个检测触摸的问题。

我用 TableView 放了一个视图。当我选择一行时,使用 ScrollView 添加新视图。 ScrollView放在TableView上,但是是一个带有clearColor背景的ScrollView,可以看到后面的TableView。我需要触摸 ScrollView 并发送触摸以检测为用户选择的行。

我可以在 ScrollView whit touchBegan 中检测到触摸,并将触摸发送到后面的 tableView 视图,但是 didSelectRow 没有检测到触摸,只有在我将其他 touchBegan 放入 tableView 视图时才检测到触摸,但我需要发送触摸以选择所选行。

非常感谢!!

         First View
-----------------------------
-         -                 - 
-         -                 - 
-    T    -                 - 
-    A    -                 - 
-    B    -                 - 
-    L    -                 - 
-    E    -                 - 
-    V    -                 - 
-    I    -                 - 
-    E    -                 - 
-    W    -                 - 
-         -                 - 
-         -                 - 
-----------------------------


        Second View  --> ##### is the ScrollView area on tableView FirstView
-----------------------------
-   -######                 - 
-   -######                 - 
-   -######                 - 
-   -######                 - 
-   -######                 - 
-   -######   SCROLL        - 
-   -######    VIEW         - 
-   -######                 - 
-   -######                 - 
-   -######                 - 
-   -######                 - 
-   -######                 - 
-   -######                 - 
-----------------------------

######我需要触摸这个位置并选择后面tableView中的行。

【问题讨论】:

【参考方案1】:

当您确定需要在滚动视图的 touchesBegan 方法中传递触摸时,调用

[self.nextResponder touchesBegan:touches withEvent:event];

将事件沿链向下传递,而不是尝试直接调用父视图的 touchesBegan 方法。

【讨论】:

谢谢约翰!但不要为我工作:(,我使用这些行,我把 self.nextResponder 或 super 或 [self superview] 但不工作,如果我在第一个视图中放置一个方法 touchesBegan 只能捕获事件,但是未选择 tableview 单元格,因为没有调用 de didSelectionRow。 这仅在顶视图是后视图的子视图时才有效,如果两者在同一层次结构中则无效。

以上是关于UIScrollView 中的触摸事件发送到后面的 tableview的主要内容,如果未能解决你的问题,请参考以下文章

检测 UIScrollView 中的滚动事件并发送到 UITableView 或其他 UIScrollView

使用后将覆盖 UIView 的触摸事件转发到下面的 UIScrollView

将触摸事件从 UIVew 传输到 UIScrollView

UIScrollView 的触摸事件

允许单点触摸事件通过 UIScrollView

UIScrollView 问题