J'ai une classe draggable qui hérite de UIImageView. Le glisser fonctionne bien lorsque la vue n'est pas animée. Mais en l'animant, il ne répondra pas aux touches. Une fois l'animation terminée, le toucher fonctionne à nouveau. Mais j'en ai besoin pour mettre en pause l'animation sur les touches et reprendre quand le toucher se termine. J'ai passé toute la journée à faire des recherches mais je n'ai pas compris la raison.UIView touchesbegan ne répond pas pendant l'animation
Voici mon code d'animation.
[UIView animateWithDuration:5.0f
delay:0
options:(UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
animations:^{
self.center = CGPointMake(160,240);
self.transform = CGAffineTransformIdentity;
}
completion:nil
];
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
NSLog(@"touch");
CGPoint pt = [[touches anyObject] locationInView:self];
startLocation = pt;
[self.layer removeAllAnimations];
[[self superview] bringSubviewToFront:self];
}
Brillant. Merci! – bzlm
btw J'ai eu des problèmes avec ça même si la position n'est pas animée, mais une autre propriété ('frame' dans mon cas) est ... vous obtenez toujours des taps qui sont simplement engloutis, même si la vue' hitTest' et Les méthodes 'pointInside' sont appelées et retournent correctement. Aussi, je fais juste 'if ([voir pointInside: point avecEvent: event])' - pas besoin de 10 points de slop – AlexChaffee