UITouch touche la direction et la vitesse du doigt
Comment puis-je obtenir la Vitesse et la Direction des mouvements des doigts dans touchmoved fonction?
Je veux obtenir le doigt de la vitesse et les doigts de la direction et de l'appliquer dans une classe UIView direction du mouvement et de la vitesse d'animation.
J'ai lu ce lien, mais je ne comprends pas la réponse, en outre, il n'est pas d'expliquer comment je peux détecter la direction:
UITouch la vitesse de déplacement de détection
jusqu'à présent, j'ai essayé ce code:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *anyTouch = [touches anyObject];
CGPoint touchLocation = [anyTouch locationInView:self.view];
//NSLog(@"touch %f", touchLocation.x);
player.center = touchLocation;
[player setNeedsDisplay];
self.previousTimestamp = event.timestamp;
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self.view];
CGPoint prevLocation = [touch previousLocationInView:self.view];
CGFloat distanceFromPrevious = [self distanceBetweenPoints:location :prevLocation];
NSTimeInterval timeSincePrevious = event.timestamp - previousTimestamp;
NSLog(@"diff time %f", timeSincePrevious);
}
source d'informationauteur Val Nolav | 2012-04-22
Vous devez vous connecter pour publier un commentaire.
Direction sera déterminée à partir des valeurs de "localisation" et "prevLocation" dans touchesMoved. Plus précisément, l'emplacement contiendra le nouveau point de le toucher. Par exemple:
Maintenant touchesMoved seront appelés à de nombreuses reprises pour un mouvement de doigt. Il sera la clé de votre code de comparer une valeur initiale lorsque le doigt touche l'écran, avec une valeur de la CGPoint lorsque le mouvement est enfin au complet.
pourquoi ne pas juste en-dessous, comme une variation sur obuseme réponse