Нам не нужен отдельный признак распознавания жестов. Для управления этим сценарием можно использовать различные состояния в распознавателе жестов с длинным нажатием.
Длительное нажатие Жест имеет различные состояния, как UIGestureRecognizerStateBegan, UIGestureRecognizerStateChanged и UIGestureRecognizerStateEnded.
UIGestureRecognizerStateBegan вызывается, как только вы долго нажимаете подзаголовок.
UIGestureRecognizerStateChanged вызывается, когда пользователь пытается переместить палец.
UIGestureRecognizerStateEnded вызывается, когда пользователь поднимает палец с точки касания.
- (void)longPressGestureForPreviewImageView:(UILongPressGestureRecognizer *)recognizer{
if (recognizer.state == UIGestureRecognizerStateBegan)
{
// Long press detected, start the timer
[self showPreviewImage:recognizer];
}
else if(recognizer.state == UIGestureRecognizerStateChanged)
{
NSLog(@"Swipe up");
if ([self.thumbnailImageView.gestureRecognizers containsObject:recognizer]) {
[self.thumbnailImageView removeGestureRecognizer:recognizer];
}
}
else if(recognizer.state == UIGestureRecognizerStateEnded)
{
[self hidePreviewImage];
}
Таким образом, мы можем использовать методы делегата Gesture для обработки салфетки вместе с указателем жестов с длинным нажатием.