所以,我有一个游戏场景。在didMoveToView函数中,我已经声明了我的保持手势:
let holdGesture = UILongPressGestureRecognizer(target: self, action: "handle")
view.addGestureRecognizer(holdGesture)
"处理"是我的功能,当用户按下并按住触摸时调用该功能:
func handle() {
i++
println(i)
}
所以,我是一个全局变量,它是0.用户持有的触摸越多,我将增加的越多。这就是我想要做的。我的问题是:为什么用户要在屏幕上移动手指以增加i而不是将手指放在屏幕上而不移动它?当我握住手指时,当我触摸屏幕时,我只增加1,当我将手指从屏幕上抬起时,我再次增加1。但是,如果我触摸屏幕并移动我的手指,我会增加。哪个是问题?谢谢,抱歉我的英语。
答案 0 :(得分:0)
UILongPressGestureRecognizer不会每秒触发您的方法(或您假装的任何时间间隔),但在指定的时间段后触发您的方法一次。
以下是Apple文档:
UILongPressGestureRecognizer
UILongPressGestureRecognizer 是 UIGestureRecognizer 的具体子类,用于查找长按手势。用户必须在视图上按下一个或多个手指并将其保持在那里 动作触发前的最短时间。虽然下来了, 用户的手指移动距离不得超过指定距离;如果他们 超出指定距离,手势失败。
长按手势是连续的。手势开始了 ( UIGestureRecognizerStateBegan )允许的数量 已按下手指( numberOfTouchesRequired ) 指定期间( minimumPressDuration ),触摸不会 超出允许的移动范围( allowableMovement )。 每当a时,手势识别器转换到Change状态 手指移动,并在任何时候结束( UIGestureRecognizerStateEnded ) 手指被抬起。