Objective-C で加速度計/ジャイロスコープを使用して、次のことを確認するにはどうすればよいですか?
A) iPhone がユーザーの顔の真正面に保持されている、つまり「上向き」に保持されている、または
B) iPhone が例えばテーブルの上に置かれている、つまりディスプレイが上を向いている。
Objective-C で加速度計/ジャイロスコープを使用して、次のことを確認するにはどうすればよいですか?
A) iPhone がユーザーの顔の真正面に保持されている、つまり「上向き」に保持されている、または
B) iPhone が例えばテーブルの上に置かれている、つまりディスプレイが上を向いている。
UIAccelerationクラスリファレンスを読み、重力が常に存在することに注意する必要があります。したがって、iPhoneが垂直である(そして安定している)場合、y軸に沿って1gを読み取ります。テーブルの上で平らになったら、z軸に沿って1gを読み取ります
最初に準拠してから<UIAccelerometerDelegate>
、これらのメソッドを使用できます。
#pragma mark --- Acceleration Start and Stop ----------------------------
-(void)startMeasuringAcceleration{
NSLog(@"Started Measuring Acceleration");
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1];//update interval (1s at moment)
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
}
-(void)stopMeasuringAcceleration{
[[UIAccelerometer sharedAccelerometer] setDelegate:nil];
}
#pragma mark UIAcceleromete Delegate Methods-----------------------------------------------
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
NSLog(@"%f, %f, %f, %f", acceleration.x, acceleration.y, acceleration.z, acceleration.timestamp);
}
X、Y、Z を測定します。Z は画面上の軸で、Y は上から下、X は左から右です。
viewDidLoad 呼び出し[self startMeasuringAcceleration]
で開始
それが役立つことを願っています。
加速度計のz座標値を読み取る必要があります。
UIAccelerometerDelegate は iOS 5.0 以降非推奨になっているため、使用しないでください。iOS 4 以降、これはセンサー フュージョンを使用するはるかに信頼性の高い Core Motion フレームワークに置き換えられました。
だから見てください:
accelerometer:didAccelerate: が IOS5 で非推奨になったのはなぜですか?
Apple ドキュメント内のリンクをたどります