老问题标题:如何在父 UIView 中捕获事件,例如 HUD 图层?
我正在尝试使用 UI 框架而不是 cocos2d 编写游戏。
我想让 View partials 正确处理所有事件。这似乎不可能。
通过部分视图,我指的是 Ruby on Rails(和其他语言)允许您将一小块表示层(视图代码)显示在较大的表示层(视图代码)中的方式。
游戏有一个 HUD 层,顶部有分数(和其他元数据),我使用
[self.view addSubview:y]
或者
[self.navigationController push...]
在视觉上,它会是这样的(不按比例):
+----------------------------+
|A |
|+--------+ +------------+ |
||B | |C | |
|| | | | |
|+--------+ | | |
| | | |
| +------------+ |
+----------------------------+
- A部分有与主菜单相关的按钮(主导航)
- B部分有得分等按钮
- C区是主要游戏区
Section A 和 Section B 都是 HUD 层,它们旨在在需要时具有可点击的事件。
我不想一遍又一遍地重复相同的代码,所以我觉得在窗口中包含我想要的视图的 HUD 系统应该是实现这一点的最佳方式。
我遇到的问题是,如果我在任何其他视图控制器中包含我的 HUD.h/HUD.m 文件,我将不再接受 C 部分中 A 或 B 部分的点击,并且我不能让它执行事件操作它总是抱怨 C 部分中不存在该方法。
如果我在 C 部分视图中,我应该接受来自 A 和 B 的点击并适当地处理它们。
因此,通过 HUD 分层系统捕获事件并适当处理事件的最佳方式是什么?
我见过的最接近的可能是使用 touchesBegan,但我不清楚的是如何将 touchesBegan 事件链接到 Section A/B 控制器中的事件。
谢谢。