Sto imparando a scrivere un'app utilizzando il sensore del giroscopio in iOS. Esistono classi per gestire il giroscopio simile a UIAcceleration/UIAccelerometer/UIAccelerometerDelegate per l'accelerometro?API Gyroscope iOS
risposta
Prima di importazione CoreMotion
quadro
#import <CoreMotion/CoreMotion.h>
self.motionManager = [[CMMotionManager alloc] init];
//Gyroscope
if([self.motionManager isGyroAvailable])
{
/* Start the gyroscope if it is not active already */
if([self.motionManager isGyroActive] == NO)
{
/* Update us 2 times a second */
[self.motionManager setGyroUpdateInterval:1.0f/2.0f];
/* Add on a handler block object */
/* Receive the gyroscope data on this block */
[self.motionManager startGyroUpdatesToQueue:[NSOperationQueue mainQueue]
withHandler:^(CMGyroData *gyroData, NSError *error)
{
NSString *x = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.x];
self.gyro_xaxis.text = x;
NSString *y = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.y];
self.gyro_yaxis.text = y;
NSString *z = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.z];
self.gyro_zaxis.text = z;
}];
}
}
else
{
NSLog(@"Gyroscope not Available!");
}
Come dice il codice, per prima cosa creare un'istanza di responsabile del movimento. Poi vedo se il dispositivo supporta Giroscopio. Se non muori con grazia, altrimenti imposta l'intervallo di aggiornamento del giroscopio & quindi registrati per ottenere gli aggiornamenti dal giroscopio. Con questi aggiornamenti è necessario definire la logica personalizzata di ciò che si desidera fare con i valori. Questo è tutto ciò che devi fare ...
Per i dati del giroscopio, è necessario utilizzare CoreMotion. Inizia leggendo il relevant section of the Event Handling Guide for iOS. Avrai bisogno di lavorare con due classi: CMGyroData che incapsula i dati degli eventi del giroscopio e CMMotionManager che viene utilizzato per registrarsi agli eventi del giroscopio.
Maggiori informazioni si possono trovare in risposta selezionata di questa domanda: Apple gyroscope sample code
- 1. Documentazione API API iOS
- 2. CMMotionManager and the Gyroscope su iPhone 4
- 3. Errori iOS API Nest
- 4. Sviluppo iOS API REST
- 5. API iOS rileva reti wireless
- 6. Login personalizzato Instagram API iOS
- 7. iOS 5 "API Centro notifiche"?
- 8. API PayPal per iOS - consentito?
- 9. accesso registro chiamate iOS api
- 10. Geofence API per iOS 5
- 11. API FQL e Graph in iOS
- 12. API iOS 6 e compatibilità all'indietro
- 13. iOS notifiche tocco di eventi (API private)
- 14. Zoom in google map api 3 [ios]
- 15. Crash in iOS: XPC API Uso improprio
- 16. Elenco di API/processi multitasking iOS
- 17. Aggiornamento iOS su twitter api 1.1
- 18. IOS Core Bluetooth: Getting API MISUSE Warning
- 19. API Google iOS Auth2 Accesso schermata vuota
- 20. iOS Facebook Graph API Profilo Foto Link
- 21. Utilizzo API non pubblico nell'app iOS?
- 22. Trigger.io Forge 2.2.0 iOS "API non pubbliche"
- 23. Instagram iOS API per postare video
- 24. iOS Google Maps Api Sovrapposti piastrellati
- 25. ios/iphone photo burst mode api
- 26. Dove è iOS 6 Siri API
- 27. Qual è la differenza tra il progetto api classico e unified api ios in xamarin
- 28. Reverse Geocoding utilizzando le mappe di Google per iOS API
- 29. Google YouTube API v3 Chiave app iOS, codice errore 403
- 30. Eccezione SIGPIPE nel progetto iOS con API BUMP integrata
[self.motionManager isGyroAvailable] questo controllo è un must? Cosa succede se il giroscopio non è disponibile? L'app si blocca? O restituire valori nulli. Se restituisce valori null, qual è l'oggetto che restituisce un valore null ?? – user682765
è un controllo poiché gli iPhone meno recenti non dispongono di giroscopio. Potrebbe bloccarsi se inizi a utilizzare le API del giroscopio quando il dispositivo stesso non supporta. meglio essere sicuri che dispiaciuti ... –
Come aggiornamento: la Documentazione di Apple per 'startGyroUpdatesToQueue' consiglia di non usare la coda principale in quanto ciò potrebbe causare lag. Utilizzare una coda diversa o utilizzare semplicemente la proprietà '.gyroData' del gestore di movimento per ottenere i dati del giroscopio. Se stai facendo un gioco usando le strutture di movimento, ti consiglio di fare l'intervallo di 1/60 di secondo (in modo che corrisponda al frame rate), e se uno dei due ha un problema, cambia l'intervallo per ottenere i dati del giroscopio verso il basso . – DDPWNAGE