(Xcode/iPhone)水平器アプリ制作、の勉強メモ。

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:メソッドに記述