2009-08-08 5 views
0

Ich möchte die Anzahl der Taps irgendwo auf dem Bildschirm erhalten.Anzahl der Berührungen

Hier ist mein Code:

-(void) touchesEnded: (NSSet *)touches withEvent: (UIEvent *)event 
{ 
    DebugLog(@"touches: %d", [touches count]); 
} 

Diese Methode in einem aktiven View-Controller implementiert.

Aber es erkennt nicht mehrere Taps - es meldet mir sie als einen einzigen Tipp.

Wie kann ich eine Menge an Taps bekommen?

Danke.

Antwort

3

Das Problem liegt darin, wie Berührungen in dieser Methode gemeldet werden. Das NSSet touches in dieser Methode enthält eine oder mehrere Instanzen von UITouch und jede UITouch-Instanz repräsentiert Berührungsereignisse von einem einzelnen Finger auf dem Bildschirm. Wenn der Benutzer den Bildschirm mit zwei Fingern berührt, enthält das Set touches zwei UITouch-Objekte.

Das Problem besteht darin, dass ein einzelnes UITouch mehrere Taps haben kann, ohne als mehrfache UITouches betrachtet zu werden. Wenn das Gerät an ungefähr der gleichen Stelle zwei Abgriffe erkennt (Finger nach oben und unten ohne nennenswerte Bewegung), kombiniert es sie zu einem einzigen UITouch mit mehreren Abgriffen. In diesem Fall verwenden Sie den Auswahlschalter tapCount10 auf UITouch, um zu ermitteln, wie viele Tippvorgänge berührt wurden.

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    NSLog(@"Got %u touches", [touches count]); 
    for(UITouch *touch in touches) { 
     NSLog(@"Touch had %u taps", [touch tapCount]); 
    } 
}

Für weitere Informationen:

1

Klingt wie Sie einfach aktivieren kann "Multiple Touch" über Interface Builder-Ansicht Attribute Inspector auf die Oberflächenelement oder Ansicht, mit der Sie arbeiten

Ich vergesse das immer und laufe auf dasselbe Problem wie du, bis ich zwei Stunden später daran denke, dass ich diese Box überprüfen muss.

Verwandte Themen