Frage

Ich habe a eingerichtet UISwipeGestureRecognizer:

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:delegate action:@selector(handleSwipeGesture:)];
swipe.direction = UISwipeGestureRecognizerDirectionUp;
[self addGestureRecognizer:swipe];
[swipe release];

Ein Schlag lässt den Spieler in Richtung des Swips bewegt. Ich brauche den Spieler jedoch, um sich in Bewegung zu halten, bis der Finger, der den Swipe machte, vom Bildschirm abgehoben wird. Ich habe versucht, die Methode für berührende zu verwenden, aber es erfordert, dass zuerst eine nicht ausgewickte Berührung gemacht wird. Wie kann ich die Berührung bekommen, die die Swipe -Geste gemacht hat? Wie kann ich erkennen, wann diese Berührung vom Bildschirm abgehoben wird?

War es hilfreich?

Lösung 2

Nachdem ich die Dokumentation von Apple durchgesehen hatte, fand ich diese Eigenschaft von Uigesturerecognizer:

@property(nonatomic) BOOL cancelsTouchesInView

Einstellen auf NO Lassen Sie die Ansicht des Empfängers alle Berührungen verarbeiten, die Teil der Multi-Touch-Sequenz sind, die der Gestenerkenner empfängt.

Andere Tipps

Ich weiß, dass Sie bereits mit einer Antwort auf diese Frage zufrieden sind, aber ich dachte, ich könnte empfehlen, einen Uipangesture -Kognizer anstelle der Swipe -Geste zu verwenden.

Mit einem Pan -Gesten -Erkenner wird die Nachricht wiederholt an den Selektor gesendet, bis der Benutzer nicht mehr seinen Finger schlepp gesture.state von UIGestureRecognizerStateEnded. Beispiel:

- (void)panGesture:(UIPanGestureRecognizer *)gesture {
    if (gesture.state == UIGestureRecognizerStateEnded) {
        CGPoint translation = [gesture translationInView:self.view];
        //This contains the total translation of the touch from when it 
        //first recognized the gesture until now.
        //
        //e.g (5, -100) would mean the touch dragged to the right 5 points, 
        //and up 100 points.
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top