0

これがすべてあります...

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation {

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    return (interfaceOrientation != UIInterfaceOrientationPortrait && interfaceOrientation       != UIInterfaceOrientationLandscapeLeft && interfaceOrientation !=      UIInterfaceOrientationPortraitUpsideDown);
  } else {
    return YES;
}
}

そして、私は加速度計が縦向きであるかのように横向きで動作することを望んでいます...私は次のようなすべての加速度計のものを持っています:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration*)acceleration {
   accx = acceleration.x;

}

また、他の質問を調べてみましたが、解決策が見つかりません...?

4

2 に答える 2

0

正しく理解されていれば、あなたは縦向きになっていて(X軸方向に画像を参照)、右に傾けて左に傾けると、アプリの画像が左右に移動するはずです。次に、横向きに切り替えると、画像が左右に移動するはずですが、移動しません。ここで注意する必要がある軸はY軸です。

ハードウェアに損傷があり、加速度計が機能しなくなった場合を除いて、横向きに回転したときにY軸に変化が見られない理由はありません。

iPhone加速度計

さて、あなたが求めているのは、加速度計をリセットして、Y軸で変化が起こっていてもXから読み続けることができるようにする方法ですか?いいえ、追加のメソッドを作成しない限り、これを行う方法はありません...次の行に沿って何か。

+(UIAccelerationValue)fixedAccelerationValue{
    //Check which axis you should look for
    if ( [[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait || [[UIDevice currentDevice] orientation] == UIInterfaceOrientationUpsideDown ){
        //read from the x axis
    }
    else{
        //read from the y axis
    }

}
于 2012-04-20T03:01:39.467 に答える
0

同じ問題が発生し、実装ファイルのBOOL前にステートメントを追加して修正しました。UIACCELEROMETER

(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{

    if (interfaceOrientation == UIInterfaceOrientationPortrait ||
        interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
        interfaceOrientation == UIInterfaceOrientationLandscapeRight)
        return YES;
    else
        return NO;
}

お役に立てれば。

于 2013-04-23T12:54:51.833 に答える