Combiner appuyez de manière prolongée sur le geste et la geste de glissement ensemble
Je me déplace de mon point de vue par
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveRight:)];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setMaximumNumberOfTouches:1];
[panRecognizer setDelegate:self];
[bubbleView[rightCnt] addGestureRecognizer:panRecognizer];
[panRecognizer release];
Maintenant , je veux faire la même chose par glisser avec de longues presse.
Une idée?
Vous devez vous connecter pour publier un commentaire.
UILongPressGestureRecognizer
déjà fait ce que vous voulez pour vous. Jetez un oeil à laUIGestureRecognizerState
de la propriété. À partir de la la documentation:Donc, essentiellement, après votre
UILongPressGestureRecognizer
sélecteur est appelée, vous écouter UIGestureRecognizerStateBegan, UIGestureRecognizerStateChanged, UIGestureRecognizerStateEnded. Continuer à changer votre point de vue en image au cours deUIGestureRecognizerStateChanged
.[yourView setFrame:CGRectMake(xCoord,yCoord,height,width)]
translatedPoint
? Vous souhaitez longtap sur une vue & faites-le glisser autour de la droite? dansUIGestureRecognizerStateEnded
vous écrivez du code pour obtenir le nouvel emplacement de ce point de vue.UIGestureRecognizerStateChanged
a été appelé. Et la réponse a été: en utilisant[myGestureRecognizer locationInView:aView]
sender.state
sera toujoursBegan
avantChanged
. Cela signifie_priorPoint
sera toujours initialisée avant d'être utilisée.Began
étatDans Swift cela peut être réalisé en utilisant le code ci-dessous
Vous n'avez pas besoin de déclarer _priorPoint;
Dans mon cas, je veux seulement la vue à déplacer horizontalement donc, je suis seulement la modification de la coordonnée x.
Voici ma solution:
UIView
suivant du doigt. Imaginez que vous commencez à laUILongPress
de l'angle d'une image et que vous voulez balayez vers la gauche, cette image serait sauter à la position de votre doigt. Dans mon cas, j'ai dû utiliser un_priorPoint
solution.Grâce à Hari Kunwar pour le code Swift, mais le longPressAction fonction n'est pas correctement défini.
Voici une version améliorée:
view.center = location
? Les mathématiques de base...