UILongPressGestureRecognizer - это непрерывный распознаватель событий.Вы должны посмотреть на состояние, чтобы увидеть, является ли это началом, серединой или концом события и действовать соответственно.то есть вы можете выбросить все события после старта или смотреть на движение только так, как вам нужно.Из Class Reference :
Жесты при длительном нажатии являются непрерывными.Жест начинается (UIGestureRecognizerStateBegan), когда количество допустимых пальцев (numberOfTouchesRequired) было нажато в течение указанного периода (минимальная длительность) и касания не выходят за пределы допустимого диапазона движения (allowableMovement).Распознаватель жестов переходит в состояние «Изменение» при каждом перемещении пальца и заканчивается (UIGestureRecognizerStateEnded), когда любой из пальцев поднят.
Теперь вы можете отслеживать состояние, подобное этому
- (void)handleLongPress:(UILongPressGestureRecognizer*)sender {
if (sender.state == UIGestureRecognizerStateEnded) {
NSLog(@"UIGestureRecognizerStateEnded");
//Do Whatever You want on End of Gesture
}
else if (sender.state == UIGestureRecognizerStateBegan){
NSLog(@"UIGestureRecognizerStateBegan.");
//Do Whatever You want on Began of Gesture
}
}