Comment arrêter UIPanGestureRecognizer lorsque l'objet s'est déplacé afin de certains cadre
J'ai un objet de type d'image dont je suis le mouvement à l'aide de UIPanGestureRecognizer, et j'ai besoin d'arrêter reconnaissant la UIPanGestureRecognizer lorsque l'objet atteint une certaine image.
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setMaximumNumberOfTouches:1];
[panRecognizer setDelegate:self];
[templatePhotoPlaceholderView addGestureRecognizer:panRecognizer];
-(void)move:(UIPanGestureRecognizer *)gestureRecognizer
{
CGPoint translatedPoint = [gestureRecognizer translationInView:templatePhotoPlaceholderView];
if([gestureRecognizer state] == UIGestureRecognizerStateBegan) {
_firstX = [imageview center].x;
_firstY = [imageview center].y;
}
translatedPoint = CGPointMake(_firstX+translatedPoint.x, _firstY+translatedPoint.y);
//NSLog(@" Move center point :%@", NSStringFromCGPoint(translatedPoint));
[imageview setCenter:translatedPoint];
}
Comment puis-je faire cela ?
OriginalL'auteur user905582 | 2011-11-10
Vous devez vous connecter pour publier un commentaire.
UIGestureRecognizers ont une propriété enabled. Documentation:
EDIT:
Juste définir la propriété enabled à PAS.
OriginalL'auteur jbat100
Lorsque vous devez arrêter votre UIPanGestureRecognizer de reconnaître geste, il vous suffit de mettre cette ligne de code (comme jbat100 dit) dans
-(void)move:(UIPanGestureRecognizer *)gestureRecognizer
:après cette ligne votre gestureRecognizer etat a fixé comme
"UIGestureRecognizerStateCancelled"
puis il suffit d'ajouter quelques lignes à votre
-(void)move:(UIPanGestureRecognizer *)gestureRecognizer
fonction:et vous serez en mesure de travailler avec votre geste de reconnaissance
MODIFIER:
Voici un extrait de code:
gestureRecognizer.enabled = YES;
doit être écrit. Si vous pouvez élaborer aurait plus de sens.Merci pour les commentaires, j'ai mis à jour ma réponse.
J'adore cette. Il maintient l'état de la reconnaissance encapsulé dans cette fonction au lieu de mettre stupide
shouldCancelPan
variables d'instance dans votre code.l'utilisation de cette technique quand j'arrive à un certain point et de définir logiciel de reconnaissance.enabled = false, elle se déplace à l'annulation de l'état dans lequel j'ai de nouveau activée, mais le geste doesent démarrer jusqu'à ce que je lève mon doigt et à recommencer.
OriginalL'auteur derpoliuk
Définir la pangesture.delegate=self, et de mettre en œuvre délégué méthode
OriginalL'auteur nova