2012-04-11 8 views
0

Ich habe viele Tutorials über das Internet zu sehen Schlag in iPhone zu sehen, aber meine Anforderung ist, dass ich Single-Blow und Double-Blow beide erkennen müssen, so dass, wenn Benutzer einmal blasen kann es Aktion a und wenn der Benutzer bläst zweimal zusammen, um dann Aktion b auszuführen.Double Blow Detection in iPhone

Jeder Weg, dies zu tun?

Dank all,

Antwort

2

Sicher, wenn Sie wissen, wie man einen einzigen Schlag erkennen, könnten Sie haben nur einen Timer mit einem Schwellenwert & sehen, ob ein weiterer Schlag innerhalb dieser Zeit passiert? So etwas wie -

-(void)userDidBlow { 

    if (hasBlownOnce) { 

     hasBlownOnce = NO; 
     [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleBlowTimedOut) object:nil]; 

     // do double-blow stuff 

    } else { 

     hasBlownOnce = YES; 

     [self performSelector:@selector(singleBlowTimedOut) withObject:nil afterDelay:kDoubleBlowTime]; 

    } 

} 


-(void)singleBlowTimedOut { 

    hasBlownOnce = NO; 

    // do single-blow stuff 

} 

ich es nicht getestet, aber es sieht ok :)

+0

Ich habe auch nicht geprüft, aber es sieht ok. :) – necixy

+0

Hast du eine Chance bekommen es zu versuchen? – SomaMan

+0

Noch nicht, weil das Projekt später gestartet wird. Ich werde auf dem Laufenden bleiben, wenn es Erfolg oder Misserfolg gibt. :) – necixy