interactivePopGestureRecognizer - выдвигается или возвращается к текущему контроллеру представления

Как я могу определить, завершен ли мой interactivePopGestureRecognizer и вернется ли (всплывет) к предыдущему контроллеру представления или смещения недостаточно. Затем контроллер текущего вида вернется в свое нормальное положение.

мой код:

if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    [self.interactivePopGestureRecognizer addTarget:self action:@selector(defaultGestureAction:)];
}

- (void)defaultGestureAction:(UIGestureRecognizer *)sender {

   if (sender.state == UIGestureRecognizerStateBegan || sender.state == UIGestureRecognizerStateChanged) {

   } else {

   //this code is fired when I touch up
   //is there any way to check this action (pop or stay)?
   }
}

1 ответ

Я не думаю, что есть какой-либо готовый флаг, который говорит, что жест был положительным или отрицательным.

Вы можете попробовать сделать это самостоятельно, проанализировав точку перевода и скорость:

- (void)defaultGestureAction:(UIScreenEdgePanGestureRecognizer *)sender
{
    if (sender.state == UIGestureRecognizerStateEnded)
    {
        CGPoint translatedPoint = [(UIScreenEdgePanGestureRecognizer*) sender translationInView:[sender view]];
        if(translatedPoint.x > self.view.bounds.size.width * 0.5f || [sender velocityInView:self.view].x > 500.0f)
        {
            //did trigger translation
        }
        else
        {
            //did cancel translation
        }
    }
}
Другие вопросы по тегам