Question simple ici: Comment puis-je détecter lorsque l'utilisateur glisse le doigt sur l'écran de l'iPhone?iPhone traiter un balayage par l'utilisateur
Répondre
Vous devez implémenter un outil de reconnaissance de gestes dans votre application.
Dans votre interface:
#define kMinimumGestureLength 30
#define kMaximumVariance 5
#import <UIKit/UIKit.h>
@interface *yourView* : UIViewController {
CGPoint gestureStartPoint;
}
@end
kMinimumGestureLength est la distance minimale du doigt à parcourir avant compte comme un simple glissement. kMaximumVariance est la distance maximale, en pixels, que le doigt peut terminer au-dessus du point de départ sur l'axe des ordonnées.
Maintenant ouvrez votre fichier Interface .xib
et sélectionnez votre point de vue dans IB, et assurez-vous Multiple Touch
est activé dans View Attributes.
Dans votre mise en œuvre, mettre en œuvre ces méthodes.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
gestureStartPoint = [touch locationInView:self.view];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
CGPoint currentPosition = [touch locationInView:self.view];
CGFloat deltaX = fabsf(gestureStartPoint.x - currentPosition.x);
CGFloat deltaY = fabsf(gestureStartPoint.y - currentPosition.y);
if(deltaX >= kMinimumGestureLength && deltaY <= kMaximumVariance){
//do something
}
else if(deltaY >= kMinimumGestureLength && deltaX <= kMaximumVariance){
//do something
}
}
Ceci est une façon de mettre en œuvre un système de reconnaissance de balayage. En outre, vous devriez vraiment consulter la documentation sur ce sujet:
Le UIGestureRecognizer est ce que vous voulez. En particulier, la sous-classe UISwipeGestureRecognizer
Ah, j'ai pu répondre à ma propre question: http://developer.apple.com/library/ios/#samplecode/SimpleGestureRecognizers/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009460
Merci pour l'aide tout le monde!
Vous n'avez pas expliqué kMinimumVariance. – Moshe
J'ai édité, Moshe. –