4

我有一个视图控制器,它在它上面创建多个子视图。所有子视图和视图控制器都接受触摸。如何将接触点信息传达给屏幕上的所有子视图?请记住,每个子视图都覆盖了整个屏幕,因此在添加一些内容后,它有点像书中的页面。也就是说,顶部子视图下方的任何子视图都不能被用户直接触摸。我尝试使用 [self.nextResponder touchesBegan:touches withEvent:event] 但这只会将触摸信息从顶部子视图发送到超级视图,绕过屏幕上的所有其他子视图。谢谢

4

3 回答 3

3

我会把另一个子视图放在一切之上。这将抓取您感兴趣的所有触摸并将它们传递回视图控制器。然后,您的视图控制器将遍历它的所有子 UIView,为它们提供事件。

即类似的东西

for (UIView *view in subviews)
  [view touchesBegan:touches withEvent:event];

尽管这是假设您想要将事件传递给的所有子视图都是视图控制器的子视图。

于 2009-11-10T21:32:32.617 回答
0

仅在超级视图中实施您的触摸方法。从那里迭代所有子视图并将触摸方法发送给它们。

于 2011-02-15T01:57:00.943 回答
-2

或者,您可以将 NSNotification 发送到所有子视图。在 subvews 类中,您可以更好地控制并处理通知以执行某些任务。

于 2009-11-14T14:15:38.997 回答