iPhoneアプリ開発の虎の巻
HOME > UIAccelerometer

UIAccelerometer

UIAccelerometerクラスを使用すると、デバイスの加速度を取得する事が出来ます。

加速度を取得する事により、デバイスの向きや傾きを判断したり、どのように動かされているかなどを判断することができます。

UIAccelerometerのクラス階層

NSObject ↑ UIAccelerometer

生成

// インスタンス取得例
UIAccelerometer *acc = [UIAccelerometer sharedAccelerometer];

UIAccelerometerのインスタンスは常に、sharedAccelerometer メソッドで取得します。
このメソッドで取得したインスタンスはシングルトンなので常に同じインスタンスが取得できます。

1台のiPhone等デバイスで、同じ方向に対する加速度は1つしかないためです。

UIAccelerometerのプロパティ

【UIAccelerometerの主要プロパティ】
プロパティ名/型 読専 説明
delegate
(UIAccelerometerDelegate)
デリゲートを指定する
(例)acc.delegate = self;
※UIAccelerometerDelegateを実装する必要あり。
updateInterval
(NSTimeInterval)
通知間隔を指定する
(例)通知間隔を10分の1秒間隔にする
 acc.updateInterval = 1.0f / 10.0f;

主要なプロパティのみ掲載しています。
 上記「UIAccelerometerのクラス階層」にあるクラスのプロパティも使用できます。

UIAccelerometerのデリゲートメソッド

【UIAccelerometerDelegate】
メソッド名 説明
-(void)accelerometer:
(UIAccelerometer*)accelerometer
didAccelerate:(UIAcceleration*)acceleration
通知時に呼ばれるメソッド

主要なデリゲートメソッドのみ掲載しています。

UIAccelerometer例文

// インスタンス取得~開始、停止
UIAccelerometer *acc = [UIAccelerometer sharedAccelerometer];
acc.updateInterval = 1.0f / 10.0f;
acc.delegate = self;  // 通知を開始させたい時に実行する

acc.delegate = nil;  // 通知を終了させたい時に実行する
// 通知時に呼ばれるデリゲートメソッド
-(void)accelerometer:(UIAccelerometer *)accelerometer
  didAccelerate:(UIAcceleration *)acceleration{

    UIAccelerationValue x = acceleration.x;  // X軸方向の加速度
    UIAccelerationValue y = acceleration.y;  // Y軸方向の加速度
    UIAccelerationValue z = acceleration.z;  // Z軸方向の加速度
}

XYZ軸

totop