【问题标题】:Avoid triggering touchesBegan: until a swipe gesture recognizer fails避免触发 touchesBegan:直到滑动手势识别器失败
【发布时间】:2014-07-17 02:48:13
【问题描述】:

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

我的问题是角色一移动就会攻击。

有没有办法设置滑动手势,让代码在查看动作是否开始滑动之前不会运行touchesBegan:withEvent:

【问题讨论】:

  • 你可以使用布尔值。

标签: ios cocoa-touch uigesturerecognizer uiswipegesturerecognizer touchesbegan


【解决方案1】:

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

为了解释结果,您的长按手势(如果设置正确)将与触摸事件一样工作,只是它会等待指定的持续时间。如果在此期间检测到滑动,您的长按手势将不会触发。似乎正是您所需要的...

【讨论】:

    猜你喜欢
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    相关资源
    最近更新 更多