(Xcode/iPhone)水平器アプリ制作、の勉強メモ。
「フレームワーク/クラス」
CoreMotion/CMMotionManager(iPhoneの動作に関するセンサーを管理するクラス)
「アプリの起動と同時に動作開始」
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self startMoving];
}
「startMovingメソッドのソースコード」
-(void)startMoving
{
self.motionManager = [[CMMotionManager alloc] init];
self.motionManager.accelerometerUpdateInterval = 1.0 / 60.0;
NSOperationQueue *queue = [NSOperationQueuemainQueue];
[self.motionManager startAccelerometerUpdatesToQueue:queue withHandler:
^(CMAccelerometerData *accelerometerdData, NSError *error){
CMAcceleration acceleration = accelerometerData.acceleration;
float centerX;
centerX = 160.0 - acceleration.x * 160.0;
if (centerX < 80.0) {
centerX = 80.0;
} else if (centerX > 240) {
centerX = 240.0;
}
self.bubble.center = CGPointMake(centerX, self.bubble.center.y);
}];
}
「まとめ」
・加速度センサーを使うにはCoreMotionフレームワークを利用
・加速度センサーのデータを取得するクラスはCMMotionManager
・加速度センサーのデータを取得し続けられるようにするために、CMMotionManagerのインスタンスはプロパティとして宣言
・加速度センサーのデータを使った処理はstartAccelerometerUpdateToQueue:withHndler:メソッドに記述