0

我的 iPhone 游戏的 appDelegate 有一个“UIWindow 窗口”成员变量。我将 UIImageViews 添加到窗口并在游戏过程中移动它们。我想处理 UIWindow 上的触摸。 我怎样才能做到这一点? 我必须继承 UIWindow 吗?

我尝试将touchesBegan:withEventtouchesEnded:withEvent方法添加到窗口,但它们没有被调用(可能是由于 UIImageViews 覆盖了窗口......例如游戏背景是 UIImageView 并且它覆盖了整个屏幕)。

干杯!

4

1 回答 1

2

是的,如果 UIImageViews 覆盖窗口并且它们接受触摸,则触摸将不会通过。您可以将这样的代码放在 UIImageView 的 touchesBegan 中,以将触摸传递到对象层中的下一个对象。

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

以前走这条路(在我的游戏中有窗口或主 UIView 控制一堆东西)我鼓励你考虑让每个 UIImageView 捕获触摸事件并处理它们。UIImageView 然后可以根据需要将信息传递给其他对象。

Apple 的UIWindow文档和View Programming Guide似乎建议您应该尝试将代码保留在窗口之外并将其放入视图中。

于 2010-12-28T18:43:17.263 回答