我正在调查UIView
之后拖动LongPressGesture
。有些代码使用touchesMoved:
,有些代码检查UIGestureRecognizerStateChange
。我还是不明白,哪一个更好?
答案 0 :(得分:3)
来自manual:
当手势识别器识别出离散手势时,它会将状态属性设置为UIGestureRecognizerStateRecognized。如果手势是连续的,则首先将状态属性设置为UIGestureRecognizerStateBegan;然后,对于手势的每个位置变化,它将属性设置(或重置)为UIGestureRecognizerStateChanged。当手势结束时,它将状态设置为UIGestureRecognizerStateEnded。如果手势识别器在任何时候意识到此多点触控序列不是其手势,则将其状态设置为UIGestureRecognizerStateFailed。
因此,如果用户触摸屏幕,则始终生成touchMoved事件,如果它处于连续手势的中间,则还会导致设置UIGestureRecognizerStateChanged状态。