如何在运行的动作中禁用触摸检测,因为如果玩家在动作中单击并单击,我不希望角色像超人一样在天空中飞行,如果他们继续单击,角色将永远不会着陆。我找到了方法“isDone”,这和这个方法有关吗??玩家点击->动作(不能在动作中点击)->动作完成->再次点击.....这就是我想要的~
Criz
问问题
25631 次
8 回答
49
这是您问题的最佳答案:
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
于 2009-10-09T10:53:59.920 回答
45
在您的视图中禁用用户交互,直到操作完成,然后再次启用它。
禁用触摸
[self.view setUserInteractionEnabled:NO];
启用触摸
[self.view setUserInteractionEnabled:YES];
下次请尝试更简洁地说明您想要的内容。
于 2009-07-09T05:57:41.633 回答
2
在斯威夫特 2.2
self.view.userInteractionEnabled = false
于 2016-05-24T11:31:50.767 回答
2
斯威夫特 3.0
self.view.isUserInteractionEnabled = false
于 2017-02-06T11:23:31.370 回答
1
只是假设您正在谈论 Cocos2D 中的特定 Action 类。如果这是真的,那么您应该知道每个动作都有一个“isDone”布尔值,您可以检查它是否已完成。让我知道这是否是您要问的,我会发布一个示例,但是您很有可能在谈论其他内容,因为您的措辞令人困惑;)
于 2009-07-26T03:44:09.563 回答
0
也许我不明白你的问题,但这就是你要找的吗?
- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[Superman Fly];
self.isTouchEnabled = NO;
}
- (void)SupermanLanded{
self.isTouchEnabled = YES;
}
于 2009-07-15T08:38:58.820 回答
0
你总是可以在你想要“禁用”点击输入的区域顶部放置一个透明的 UIView,让它监听点击,并让它忽略它们。当您希望再次收听输入时删除 UIView(或隐藏它)。
于 2009-07-09T05:38:37.647 回答
0
为什么不使用某种(简单版本)布尔值来记住,即 isInAction = true 和动作完成后 isInAction = false ...
所以当有人点击时,你会使用类似的东西
if (!isInAction) {
isInAction=true;
try {
doYourAction;
} catch {
...
} finally {
isInAction=false;
}
}
// 代码是某种伪代码,因为我还没有为 iPhone 编程,只是为了形象化我的意思。
于 2009-07-09T05:39:45.240 回答