0

Я пытаюсь реализовать жест LongPress, а затем жестом Swipe на кнопке в ios. Представление скорее всего будет функцией «Слайд для отмены» и «Запись» приложения WhatsApp.Как реализовать UILongPressGesture, за которым следует Swipe gesture в ios

В настоящее время я не получаю событие жестов. Я реализую shouldRecognizeSimultaneousWithGestureRecognizer метод также. Пожалуйста, предложите.

(BOOL)gestureRecognizer:(UIGestureRecognizer *) recognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    return YES; 
} 

ответ

0

Нам не нужен отдельный признак распознавания жестов. Для управления этим сценарием можно использовать различные состояния в распознавателе жестов с длинным нажатием.

Длительное нажатие Жест имеет различные состояния, как 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 для обработки салфетки вместе с указателем жестов с длинным нажатием.

Смежные вопросы