iOS陀螺仪API

我正在学习使用iOS中的陀螺仪传感器编写应用程序。 是否有加速度计类似于UIAcceleration / UIAccelerometer / UIAccelerometerDelegate的类陀螺仪?

首先导入CoreMotion框架

 #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!"); } 

正如代码所说,首先我创build一个运动pipe理器的实例。 然后我看看设备是否支持陀螺仪。 如果不是优雅地死去,否则设置陀螺仪更新间隔然后注册从陀螺仪获取更新。 有了这些更新,你需要定义你想要做的值的自定义逻辑。 就是这样,你很好走…

对于陀螺仪数据,您需要使用CoreMotion。 阅读iOS事件处理指南的相关部分,开始使用。 您将需要使用两个类:封装陀螺仪事件数据的CMGyroData和用于注册陀螺仪事件的CMMotionManager 。

更多的信息可以在这个问题的答案中find: 苹果陀螺仪示例代码