加速計和陀螺儀,加速計陀螺儀
在程式中如果需要建立運動管理器的執行個體,應由一個執行個體向整個程式提供加速計和陀螺儀運動服務.因為裝置中只有一個加速計和一個陀螺儀,使用單例更合乎邏輯.
建立運動管理器使用架構為: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];