6

iPhone用のパズルゲームを作っています。私のメニューなどはすべて縦向きのみですが、ゲームプレイは縦向きでも横向きでもかまいません。

したがって、メニューにいてデバイスが横向きに保持されている場合、ゲームプレイビューコントローラーに移動すると、横向きの座標でレイアウトが実行されますが、画面は実際には縦向きになっています。

ここに画像の説明を入力してください

レイアウトを行う前に、デバイスに画面の向きを強制的に変更させたい。それ、どうやったら出来るの?

現在、次のようなデバイスの向きをテストしています。

- (void) viewDidLoad {
    .
    .
    .

   if (!UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) {
      // Run Portrait Layout
   }
   else {
      // Run Landscape Layout
   }
}

そのため、デバイスが横向きの向きを返していることはわかっていますが、画面は何らかの理由で縦向きのままです。

4

2 に答える 2

18

たぶん試してみてください。

[UIViewController attemptRotationToDeviceOrientation];

viewDidLoadまたはで、viewWillAppear向きの変更を試みる必要があります

于 2012-07-11T05:06:16.790 に答える
1

UIViewControllerには、view-did-rotateイベントをキャッチするためにオーバーライドできるメソッドがいくつかあります。

– willRotateToInterfaceOrientation:duration:
– willAnimateRotationToInterfaceOrientation:duration:
– didRotateFromInterfaceOrientation:

UIViewControllerクラスリファレンスを確認してください

于 2012-07-11T05:26:26.133 に答える