我正在学习使用 iOS 中的陀螺仪传感器编写应用程序。是否有处理陀螺仪的类,类似于加速度计的 UIAcceleration/UIAccelerometer/UIAccelerometerDelegate?
问问题
24627 次
2 回答
31
第一个导入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!");
}
正如代码所说,首先我创建了一个运动管理器的实例。然后我看看设备是否支持陀螺仪。如果没有优雅地死掉,则设置陀螺仪更新间隔,然后注册以从陀螺仪获取更新。通过这些更新,您需要定义您想要对这些值执行的操作的自定义逻辑。就是这样,你很好去......
于 2011-08-21T09:04:30.443 回答
6
对于陀螺仪数据,您需要使用 CoreMotion。从阅读iOS 事件处理指南的相关部分开始。您需要使用两个类:封装陀螺仪事件数据的CMGyroData和用于注册陀螺仪事件的 CMMotionManager 。
更多信息可以在这个问题的选择答案中找到:Apple gyroscope sample code
于 2011-08-21T02:41:17.220 回答