在程序中如果需要創建運動管理器的實例,應由一個實例向整個程序提供加速計和陀螺儀運動服務.因為設備中只有一個加速計和一個陀螺儀,使用單例更合乎邏輯.
創建運動管理器使用框架為:CoreMotion.framework
引入頭文件#import <CoreMotion/CoreMotion.h>
//初始化運動管理器
CMMotionManager *motionManager=[[CMMotionManager alloc]init];
//判斷設備是否支持加速計和陀螺儀
if (motionManager.accelerometerAvailable&&motionManager.gyroAvailable) {
//設置時間,讓加速計每隔0.01秒就發送一次更新
motionManager.accelerometerUpdateInterval=.01;
//接受陀螺儀
motionManager.gyroUpdateInterval=.01;
//啟動加速計更新,並制定每次加速計更新都執行程序塊
[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
//代碼塊
}];
[motionManager startGyroUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMGyroData *gyroData, NSError *error) {
//代碼塊
}];
}
else
{
NSLog(@"設備不支持陀螺儀");
}
如果要停止接受加速計和陀螺儀的更新
[motionManager stopAccelerometerUpdates];
[motionManager stopGyroUpdates];