我正在研究将UIView
拖到LongPressGesture
之后。一些使用touchesMoved:
的代码,一些代码检查UIGestureRecognizerStateChange
。我还是不明白,哪个更好?
最佳答案
从manual:
手势识别器识别到离散手势时,会将state属性设置为UIGestureRecognizerStateRecognized。如果手势是连续的,它将首先将state属性设置为UIGestureRecognizerStateBegan;然后,对于手势的每次位置更改,它将属性设置(或重置)为UIGestureRecognizerStateChanged。手势结束后,它将状态设置为UIGestureRecognizerStateEnded。如果手势识别器在任何时候意识到该多点触摸序列都不是其手势,则将其状态设置为UIGestureRecognizerStateFailed。
因此,如果用户触摸屏幕,则始终会生成touchedMoved事件,并且如果它处于连续手势的中间,也会导致UIGestureRecognizerStateChanged状态被设置。