0

私がやりたいことは、acceleration.y を読んで、次のようなことをすることです:

if (acceleration.y > 0.8) {
   // Do something
}

didAccelerate は非推奨であるため、y 値を取得する方法を知りたいです。

motionManager = [[[CMMotionManager alloc] init] autorelease];
motionManager.accelerometerUpdateInterval = kUpdateInterval;

if (motionManager.accelerometerAvailable) {
    [motionManager startAccelerometerUpdates];
}
else {
    //this device doesn't have accelerometer notice somewhere??
}

- (void)startAccelerometerUpdates {
 // READ Y-VALUE?????
}

生の加速度計データを使用して、アプリが 3GS でも動作するようにしたい。Y値を読み取ることはできますか?

4

2 に答える 2

2

編集: 以下の回答は非推奨です。これらの投稿で正しい方法を確認してください。


古い答え:

これには、たとえば AppDelegate で UIAccelerometer シングルトン インスタンスを使用します。

//in your launching method
    UIAccelerometer * accel = [UIAccelerometer sharedAccelerometer];
    accel.delegate = self;

//delegate method:
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
    // use the y-property of the acceleration
}
于 2011-12-28T14:22:48.157 に答える
0

「指定された間隔でのモーション更新の処理」という名前のCMMotionManager クラスのリファレンスと検索セクションを見てください。「加速度計」の箇条書きには、

accelerometerUpdateInterval プロパティを設定して更新間隔を指定します。startAccelerometerUpdatesToQueue:withHandler: メソッドを呼び出し、タイプ CMAccelerometerHandler のブロックを渡します。加速度計データは、CMAccelerometerData オブジェクトとしてブロックに渡されます。

CMAccelerometerDataには、軸ごとの加速度を保持する構造体である CMAcceleration への参照があります。

于 2011-12-28T16:36:36.907 に答える