UIGestureRecognizerStateChanged和touchesMoved之间的区别是什么?

时间:2013-01-09 02:37:05

标签: objective-c ios cocoa-touch uigesturerecognizer

我正在调查UIView之后拖动LongPressGesture。有些代码使用touchesMoved:,有些代码检查UIGestureRecognizerStateChange。我还是不明白,哪一个更好?

1 个答案:

答案 0 :(得分:3)

来自manual

  

当手势识别器识别出离散手势时,它会将状态属性设置为UIGestureRecognizerStateRecognized。如果手势是连续的,则首先将状态属性设置为UIGestureRecognizerStateBegan;然后,对于手势的每个位置变化,它将属性设置(或重置)为UIGestureRecognizerStateChanged。当手势结束时,它将状态设置为UIGestureRecognizerStateEnded。如果手势识别器在任何时候意识到此多点触控序列不是其手势,则将其状态设置为UIGestureRecognizerStateFailed。

因此,如果用户触摸屏幕,则始终生成touchMoved事件,如果它处于连续手势的中间,则还会导致设置UIGestureRecognizerStateChanged状态。