2012-07-20 7 views
0

dans mon application J'utilise la méthode touchesMouvées pour détecter le balayage vers la gauche/droite. Lorsque l'utilisateur balaie vers la gauche et la droite en continu, l'animation de l'image se met automatiquement à jour. J'ai été capable de détecter une action de balayage, mais parfois, lorsque je commence à balayer à gauche et à droite en continu, l'écran ne détecte pas l'événement tactile.touchesLa détection de mouvements ne fonctionne pas correctement

dans la zone de balayage J'ai placé un bouton caché et quelques images pour les animations. Je veux savoir pourquoi ça arrive. S'il vous plaît, aidez-moi.

merci.

Code

:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 
    [super touchesMoved:touches withEvent:event]; 

    UITouch *touch = [touches anyObject]; 
    CGPoint newLocation = [touch locationInView:self.view]; 
    CGPoint oldLocation = [touch previousLocationInView:self.view]; 

    if(newLocation.x-oldLocation.x>0){ 
     swipe_direction = 1; 
     //NSLog(@"left"); 
    } 
    else{ 
     swipe_direction = 2; 
     //NSLog(@"right"); 

    } 

    if(swipe_direction == 1){ 
     //animate images 
    } 
    else if(swipe_direction == 2){ 
     //animate images 
    } 
} 

Répondre

0

Avez-vous pensé à utiliser un SwipeGestureRecognizer au lieu du touchesMoved?

Vérifiez la Documentation

1

touchesMoved détecte uniquement sur la partie vide de la vue. Par conséquent, il ne détectera pas les objets que vous avez utilisés.

Placez un SwipeGestureRecognizer sur la vue et utilisez-le à partir de là.

Questions connexes