避免触发touchesBegan:直到滑动手势识别器失败

时间:2014-07-17 02:48:14

标签: ios cocoa-touch uigesturerecognizer uiswipegesturerecognizer touchesbegan

我在iPad上制作游戏,玩家向上,向下,向左或向右滑动以移动角色。攻击由touchesBegan:withEvent:

控制

我的问题是角色在他移动时会发动攻击。

有没有办法设置滑动手势,以便代码在看到动画是否是滑动的开始之前不会运行touchesBegan:withEvent:

1 个答案:

答案 0 :(得分:1)

这不是一件容易的事。如果不使用某些自定义手势,我建议您尝试UISwipeGestureRecognizerUILongPressGestureRecognizer的组合。我知道这听起来很傻,但事实并非如此:UILongPressGestureRecognizer与平移手势几乎相同,所以即使手指被拖动,您也会收到事件。您需要设置一些适当的最小持续时间,直到它触发(取决于滑动手势)和一些较大的最小拖动长度,因此它不会因拖动而被取消。您需要删除触摸事件方法然后将代码移动到长按手势操作。

要解释结果,您的长按手势(如果设置正确)与触摸事件的工作方式相同,只是等待指定的持续时间。如果在该持续时间内检测到滑动,则不会触发长按手势。似乎你需要什么...