XCode 6.1 UILongPressGestureRecognizer

时间:2014-11-11 13:12:05

标签: swift

所以,我有一个游戏场景。在didMoveToView函数中,我已经声明了我的保持手势:

let holdGesture = UILongPressGestureRecognizer(target: self, action: "handle")
view.addGestureRecognizer(holdGesture)

"处理"是我的功能,当用户按下并按住触摸时调用该功能:

func handle() {
        i++
        println(i)
    }

所以,我是一个全局变量,它是0.用户持有的触摸越多,我将增加的越多。这就是我想要做的。我的问题是:为什么用户要在屏幕上移动手指以增加i而不是将手指放在屏幕上而不移动它?当我握住手指时,当我触摸屏幕时,我只增加1,当我将手指从屏幕上抬起时,我再次增加1。但是,如果我触摸屏幕并移动我的手指,我会增加。哪个是问题?谢谢,抱歉我的英语。

1 个答案:

答案 0 :(得分:0)

UILongPressGestureRecognizer不会每秒触发您的方法(或您假装的任何时间间隔),但在指定的时间段后触发您的方法一次。

以下是Apple文档:

  

UILongPressGestureRecognizer

     

UILongPressGestureRecognizer UIGestureRecognizer 的具体子类,用于查找长按手势。用户必须在视图上按下一个或多个手指并将其保持在那里   动作触发前的最短时间。虽然下来了,   用户的手指移动距离不得超过指定距离;如果他们   超出指定距离,手势失败。

     

长按手势是连续的。手势开始了   ( UIGestureRecognizerStateBegan )允许的数量   已按下手指( numberOfTouchesRequired )   指定期间( minimumPressDuration ),触摸不会   超出允许的移动范围( allowableMovement )。   每当a时,手势识别器转换到Change状态   手指移动,并在任何时候结束( UIGestureRecognizerStateEnded )   手指被抬起。

UILongPressGestureRecognizer班级参考