Pergunta

Isso me deixou completamente perplexo!

Eu tenho um reconhecedor de gesto de torneira para menus de show/oculto ...

Eu também tenho um reconhecedor de gesto de furto para deslizar para a esquerda e para a direita entre as telas ...

Também tenho um MPMovieplayerController para reproduzir vídeo na tela.

Estou implementando gestureRecognizer:shouldReceiveTouch: e excluindo todos os uicontrols e qualquer coisa que tenha o prefixo "MP".

O problema é que, sempre que eu desligo para a esquerda e para a direita nos controles do jogador de filme, o shouldReceiveTouch Observa apenas o reconhecedor do gesto da torneira, não o deslizamento. Também não rastreia corretamente, e ainda assim aciona o método de deslizamento.

Eu tentei olhar para gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer Mas isso está realmente me confundiu, porque também contém um UiPangestureCognizer ... De onde isso veio?

Por favor, ajude, estou cansado e tenho um grande prazo ... e não posso resolver :(

Obrigado a todos!

: -Joe

Foi útil?

Solução 2

Ok, devo me desculpar ... a razão pela qual não estava recebendo shouldReceiveTouch As mensagens eram porque eu não estava definindo seu delegado !! Que entorpecimento. Eu estava definindo o delegado para o gesto da torneira, mas não o deslizamento. Agora está tudo funcionando bem.

Desculpe! :-)

Outras dicas

Eu eu o mesmo problema. Aqui está o que eu fiz para superar o problema. Nos métodos [self doomething ...], faço alguma animação e, se a animação terminar, ele define o estado ativado do reconhecedor de volta para sim. Esteja ciente do fato de que você define o reconhecedor correto de volta para ativado! (Aqui eu tenho que (esquerda/direita), para que a matriz GestureReCognizers tenha 2 entradas.

- (void)handleSwipeGesture:(UISwipeGestureRecognizer *)recognizer
{
    if (recognizer.state == UIGestureRecognizerStateEnded && recognizer.enabled) {
        recognizer.enabled = NO;
        if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft)
        {
            [self doSomethingInteresting];
        }
        else {
            [self doSomethingElseInteresting];
        }
    }
}
[UIView transitionWithView:self.containerView
          duration:kAnimationDuration
            options:UIViewAnimationOptionTransitionCurlDown
         animations:^{ your animations }
         completion:^(BOOL finished) {
                if (self.containerView.gestureRecognizers.count) {
             ((UISwipeGestureRecognizer *)[self.containerView.gestureRecognizers objectAtIndex:0]).enabled = YES;
} }];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top