0

我有一个有按钮的场景。单击按钮后,一个矩形精灵从左侧滑入:http: //img255.imageshack.us/img255/9867/slidei.png

在这种形状下,有几个触摸感应按钮。当我触摸矩形时,我不希望这些被调用。因此,只要形状保留在屏幕上,这些触摸就不会响应。相反,在那个棕色形状的顶部还有几个其他按钮,可以响应触摸。我该如何管理?

是否可以暂时停用场景中某个图层的触摸?矩形本身是否是 CCLayer 对象?

我知道我可以为具有透明背景的形状创建一个新场景,但我仍然希望按钮对触摸做出反应:

当我单击该按钮时,形状会滑入。当我再次单击它时,它会滑出屏幕。

4

2 回答 2

2

取决于您是否使用 touchesBegan 方法响应的实际按钮对象或 CGRect 区域。我同意 GamingHorror 的观点,最简洁的方法是根据需要直接启用/禁用按钮对象。

但是,只要滑动触摸区域是 UIView 子类,这是一个可行的组合。

在它滑入之前,您可以禁用所有用户触摸:

[[[UIApplication sharedApplication] keyWindow] setUserInteractionEnabled:NO];

在您的视图滑入后,您可能需要在该特定视图上设置用户交互启用:是。当它滑出时,你可以把它全部放回去

[[[UIApplication sharedApplication] keyWindow] setUserInteractionEnabled:YES];

于 2010-11-23T20:16:06.027 回答
0

与任何用户界面一样,您必须让对象知道它们是否已启用。您最好的选择实际上是向按钮发送消息,告诉它自己打开或关闭。

理想情况下,您将使用全局触摸输入处理程序,而不是让每个单独的按钮或幻灯片自己对输入做出反应。这会带来很多麻烦和额外的工作。相反,将所有应该对输入做出反应的对象放在同一层上,并将该层注册到触摸输入处理程序,然后它将所有触摸事件转发到该特定层而不是其他层。

于 2010-11-23T18:20:23.713 回答