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
}
}
}