1

いつものように UIViewController のサブクラスがあります。アプリをロードするとき、プログラムで配置する必要があるいくつかの要素のサイズを調整する必要があります。もちろん、サイズはインターフェイスの向きによって異なります。

- (void)viewDidLoad {
  switch( [self interfaceOrientation] ) {
     case UIInterfaceOrientationPortrait:
     case UIInterfaceOrientationPortraitUpsideDown:
          NSLog(@"Portrait");
          break:
     case UIInterfaceOrientationLandscapeLeft:
     case UIInterfaceOrientationLandscapeRight:
          NSLog(@"Landscape");
          break;
  }

ただし、シミュレーター/デバイスの向きに関係なく、すべてが正しく回転しても、ケースは常に viewDidLoad/WillAppear で縦になります。Plist に、サポートされているすべての向きを追加しました。ヒント?

4

3 に答える 3

8

私の経験では信頼できないため、スイッチでなどを試し[UIApplication sharedApplication].statusBarOrientationて確認してください。UIDeviceOrientationPortraitUIDeviceOrientationPortraitUpsideDown[self interfaceOrientation]

于 2011-04-01T03:08:31.843 に答える
0

1)willAppearのインターフェイスの向きが正しくないインターフェイスの向きを返すことを確認します。2)ここを見てみてくださいhttp://developer.apple.com/library/ios/#qa/qa1688/_index.html

3)メインビューコントローラーがウィンドウ内のviewcontrollerのみであることを確認します(ウィンドウ内にVCが1つしかない)

于 2011-03-30T10:47:57.867 に答える