2016-08-05 17 views
0

Was ich erreichen möchte, ist nur eine Linie zwischen dem Punkt, wo der Benutzer die Geste gestartet hat und dem Punkt, wo er damit endete. Ich dachte, dass UIGestureRecognizerStateEnded der Zustand ist, den ich brauche, aber es wird mehrmals aufgerufen. Ich wäre wirklich dankbar, wenn mir jemand erklären könnte, warum das passiert und wie man den letzten Punkt erreicht.Warum feuert UIPanGestureRecognizer mehrmals mit UIGestureRecognizerStateEnded ab?

- (void)drawingViewDidPan:(UIPanGestureRecognizer*)sender 
{ 
CGPoint currentDraggingPosition = [sender locationInView:_drawingView]; 

if(sender.state == UIGestureRecognizerStateBegan){ 
    _prevDraggingPosition = currentDraggingPosition; 
    NSLog(@"---"); 
} 

if(sender.state != UIGestureRecognizerStateEnded){ 
    [self drawLine:_prevDraggingPosition to:currentDraggingPosition]; 
    NSLog(@"???"); 
} 
_prevDraggingPosition = currentDraggingPosition; 
} 

das Protokoll:

2016-08-05 17: 14: 46,086 X [2518: 356.899] --- 2016.08.05 17: 14: 46,092 X [2518: 356899] ??? 2016-08-05 17: 14: 46.127 X [2518: 356899] ??? 2016-08-05 17: 14: 46.153 X [2518: 356899] ??? 2016-08-05 17: 14: 46.177 X [2518: 356899] ??? 2016-08-05 17: 14: 46.205 X [2518: 356899] ??? 2016-08-05 17: 14: 46.226 X [2518: 356899] ??? 2016-08-05 17: 14: 46.246 X [2518: 356899] ??? 2016-08-05 17: 14: 46,279 X [2518: 356899] ??? ...

+1

Was ist Ihre Log-Ausgabe, die es deutlich machen sollte, wenn es mehrere Male ausgelöst wird. derzeit ist es nicht sicher. – Shubhank

+0

Ich habe die Frage aktualisiert – AOY

+0

Ich bin mir nicht sicher. Vielleicht verwende ich nur eine falsche Gestenerkennung – AOY

Antwort

1
if(sender.state != UIGestureRecognizerStateEnded){ 
    [self drawLine:_prevDraggingPosition to:currentDraggingPosition]; 
    NSLog(@"???"); 
} 

sender.state != UIGestureRecognizerStateEnded wird für jede Art von Gesture Zustand mit Ausnahme des UIGestureRecognizerStateEnded bewerten erfolgreich.

Ändern Sie != zu == und es wird ordnungsgemäß funktionieren.

+0

Vielen Dank !!! – AOY

+1

np, Sie sind eingeladen, auch in [Chat] (http://chat.stackoverflow.com/rooms/26424/iosandroidchaosoverflow) herumzuhängen. Netter Ort, um Hilfe zu bekommen und mit anderen Entwicklern herumzuhängen – Shubhank