2

重複の可能性:
iOS 6 の自動回転の動作がおかしい

IOS 6 に問題があり、ディスプレイが横向きではなく縦向きに表示されます。実際のデバイスとシミュレータ デバイスの両方を使用しています。5.1 シミュレータでゲームをビルドすると、シミュレータ バージョン 6 を使用している場合、またはバージョン 6 の実際のデバイスを使用している場合、ビューは縦向きビューになります。これが私のコードです。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

if( interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
       interfaceOrientation == UIInterfaceOrientationLandscapeRight )
        return YES;

そのような問題を解決する方法はありますか?

ありがとうER

4

3 に答える 3

1

ShouldAutoRotation は iOS 6 では機能しなくなりました。代わりに supportedInterfaceOrientations を使用してください。

詳細については、http: //dhilipsiva.blogspot.com/2012/07/ios-6-ui-interface-orientation.htmlをご覧ください。

お役に立てれば。

于 2012-11-04T19:50:56.303 に答える
1

このメソッドshouldAutorotateToInterfaceOrientationは、iOS 6 では非推奨になりました。次のメソッドに置き換えられました。

- (BOOL)shouldAutoRotate {

    return YES;
}

- (NSUInteger)supportedInterfaceOrientations {

    return UIInterfaceOrientationMaskLandscape;
}

また、この作業を行うための非常に重要な詳細があります。AppDelegate で、次のように変更してください。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [self.window setRootViewController:<your main view controller here>];
}

を使用している場合は[self.window addSubview:self.mainViewController.view]、機能しません。

于 2012-11-04T19:54:18.857 に答える
0

iOS5とiOS6をサポートする場合は、コードにshouldAutorotateToInterfaceOrientationを残します。iOS6デバイスでは呼び出されないことを知っておいてください。

@Simonが示した例は、どちらのオペレーティングシステムも適切なメソッドを呼び出して、元のコードと平和的に共存できるはずです。私は自分のアプリに同様の何かを実装することができましたが、プロジェクト設定を使用してiOS 6の自動回転を設定し、shouldAutorotateToInterfaceOrientationだけを残して、アプリをiOS5とも互換性のあるものにしました。

于 2012-11-04T20:01:19.007 に答える