Apple ha annodato l'API Shake in iPhone SDK 3.0. Non riesco a trovare alcuna informazione su questa nuova funzionalità.Come utilizzare l'API Shake in iPhone SDK 3.0?
Chi sa come utilizzarlo? Qualsiasi esempio, il link sarà buono.
Apple ha annodato l'API Shake in iPhone SDK 3.0. Non riesco a trovare alcuna informazione su questa nuova funzionalità.Come utilizzare l'API Shake in iPhone SDK 3.0?
Chi sa come utilizzarlo? Qualsiasi esempio, il link sarà buono.
Le API si sta cercando sono in UIResponder:
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event;
In genere è sufficiente attuare questo:
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.type == UIEventSubtypeMotionShake) {
//Your code here
}
}
nella sottoclasse UIViewController (UIViewController è una sottoclasse di UIResponder). Inoltre, vuoi gestirlo in motionEnded: withEvent :, non motionBegan: withEvent :. motionBegan: withEvent: viene chiamato quando il telefono sospetta che l'agitazione stia accadendo, ma il sistema operativo può determinare la differenza tra un utente che agita intenzionalmente e agita in modo casuale (come salire le scale). Se il sistema operativo decide che non è stato un vero micromosso dopo motionBegan: withEvent: viene chiamato chiamerà motionCancelled: invece di motionEnded: withEvent :.
Joe Hewitt ha recentemente committed un codice per Three20 che utilizza l'evento shake 3.0. Sembra che tu abbia solo bisogno di implementare un codice semplice all'interno di -motionBegan:withEvent:
all'interno del tuo UIResponder
.
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.type == UIEventSubtypeMotionShake) {
...
}
}
ho postato un esempio completo 3.0 in questa discussione:
Grazie, l'ho letto. Ma questo approccio non utilizza nuove API. – sashaeve
Continua a leggere, la mia risposta a quel post usa 3.0. Io uso gli eventi pubblicati sopra, solo che spiegherò anche la necessità di impostare l'UIView come primo soccorritore, fondamentale per il suo funzionamento effettivo. –
Ho ragione se dico che abbiamo bisogno di aggiungere il codice '[auto becomeFirstResponder];' sulla vista abbiamo bisogno gesto agitare a lavoro? –
Avresti ragione nel dirlo. Inoltre: (BOOL) canBecomeFirstResponder {return YES;} – akaru