Estoy aprendiendo a escribir una aplicación usando el sensor de giroscopio en iOS. ¿Hay clases para tratar con el giroscopio similar a UIAcceleration/UIAccelerometer/UIAccelerometerDelegate para el acelerómetro?iOS Giroscopio API
Respuesta
Primera importación CoreMotion
marco
#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!");
}
Como dice el código, primero se crea una instancia del gestor de movimiento. Luego veo si el dispositivo es compatible con giroscopio. Si no muere con gracia, establezca el intervalo de actualización del giroscopio & y luego regístrese para obtener actualizaciones del giroscopio. Con estas actualizaciones, debe definir su lógica personalizada de lo que quiere hacer con los valores. Eso es lo que está bien para ir ...
Para datos de giroscopio, necesitará usar CoreMotion. Comience leyendo el relevant section of the Event Handling Guide for iOS. Tendrá que trabajar con dos clases: CMGyroData, que encapsula datos de eventos de giroscopio, y CMMotionManager, que se utiliza para registrarse en eventos de giroscopio.
Más información se puede encontrar en la respuesta seleccionada de esta pregunta: Apple gyroscope sample code
- 1. Giroscopio vs Acelerómetro?
- 2. iOS giroscopio para hacer horizonte virtual
- 3. iOS Reconocimiento de gestos utilizando acelerómetro (y giroscopio)
- 4. ¿Qué teléfonos con Android tienen un giroscopio?
- 5. iOS API detectar redes inalámbricas
- 6. 6DOF usando el acelerómetro y el giroscopio
- 7. iOS 5 "Centro de notificaciones" API?
- 8. iOS ¿Cómo utilizar la API privada?
- 9. API FQL y Graph en iOS
- 10. API de PayPal para iOS: ¿permitido?
- 11. Google Places API en la aplicación iOS
- 12. Donde es iOS 6 Siri API
- 13. Documentación de API privada de iOS
- 14. API de recortes de imágenes para iOS
- 15. ¿cómo puedo verificar si un giroscopio está presente en el dispositivo?
- 16. CMMotionManager y el giroscopio en el iPhone 4
- 17. Deriva del sensor de giroscopio y ángulo correcto Estimación
- 18. ¿Cómo acceder a los datos de acelerómetro/giroscopio de Javascript?
- 19. API para el escáner de código de barras IOS PDF417
- 20. Lista de API/procesos de multitarea de iOS
- 21. api para mostrar la calculadora nativa en la aplicación iOS
- 22. Uso de API no pública en la aplicación iOS?
- 23. ¿Hay una API para la función táctil asistida de iOS?
- 24. API de red punto a punto Bluetooth iOS
- 25. Sincronización de datos con DropBox API y iOS
- 26. ¿Hay una API para POP/IMAP en iOS?
- 27. Uso de getUserMedia/Stream API con iOS 6
- 28. iOS 6 API y compatibilidad con versiones anteriores
- 29. pantalla completa API HTML5 y Safari (IOS 6)
- 30. [iPhone - iOS] Necesito QRCode Reader API para iPhone
[self.motionManager isGyroDisponible] ¿Es este control una necesidad? ¿Qué sucede si el giroscopio no está disponible? ¿Se cuelga la aplicación? O devuelve valores nulos. Si devuelve valores nulos, ¿cuál es el objeto que devolvería un valor nulo? – user682765
es un control ya que los iPhones más antiguos no tienen giroscopio. Podría colapsar si comienzas a usar la API de giro cuando el dispositivo no es compatible. es mejor prevenir que lamentar ... –
Como una actualización: la documentación de Apple para el 'startGyroUpdatesToQueue' recomienda no utilizar la cola principal, ya que puede causar retraso. Utilice una cola diferente o simplemente use la propiedad '.gyroData' del gestor de movimiento para obtener datos de giroscopio. Si estás haciendo un juego usando los marcos de movimiento, te recomiendo hacer el intervalo 1/60 de segundo (para que coincida con las velocidades de cuadro), y si alguno de los dos tiene un problema, cambia el intervalo para bajar los datos del giro . – DDPWNAGE