2

私のアプリの iPhone バージョンは と をサポートしてUIDeviceOrientationPortraitUpsideDownUIDeviceOrientationPortraitますが、iPad バージョンはすべての方向をサポートしています。

私のView Controllerにはこれがあります:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation     {
    return YES;
}

私のInfo.plistファイルにはこれがあります:

ここに画像の説明を入力

問題は、iPod にアプリをビルドするときに、アプリが逆さまにならないことです。iPad はすべての向きをサポートします。

私はshouldAutorotateToInterfaceOrientationすべてをまとめて削除しようとしましたが、このコードを試しました:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation = UIDeviceOrientationLandscapeLeft) && (interfaceOrientation = UIDeviceOrientationLandscapeRight) && (interfaceOrientation = UIDeviceOrientationPortraitUpsideDown) && (interfaceOrientation = UIDeviceOrientationPortrait);
}

しかし、何らかの理由で、逆さまだけでは機能しません。これに対する他の解決策はありますか?

編集:Xcode 4.5 iOS6を使用

4

4 に答える 4

3

それを理解した、iOS6 SDK が使用するshouldAutorotateので、ここに私の新しいコードがあります:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}

-(BOOL)shouldAutorotate {
     return YES;
}

-(NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;
}
于 2012-09-22T03:14:47.377 に答える
0

オリエンテーションをサポートする別の方法は、UINavigationControllerをサブクラス化し、そこにオリエンテーションコードを追加することです。

すなわち

//IOS 5
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
    return YES;
}
//IOS 6
- (BOOL)shouldAutorotate {
    return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;
}

ストーリーボードを使用して、これは私のために働いた

于 2013-01-10T18:14:17.580 に答える
0

私の理解が正しければ、あなたは iPad ですべての向きをサポートし、iPhone で上下逆さまの回転と縦向きの回転のみをサポートすることを望んでいます。これを解決策として試してください。(これは、上記で行っている方法よりも簡単な方法です)

   -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
          return YES;
     }

    else {
            return UIInterfaceOrientationIsPortrait(interfaceOrientation);
        }
 }

また、他のビューでも回転できるようにするには、これを各個別のビューコントローラーに追加する必要があることも付け加えておきます。

たとえば、viewcontroller_1 と viewcontroller_2 があるとします。コントローラーの両方の .m ファイルにアクセスして、次のコードを追加する必要があります。そうしないと、いずれかのビューで回転しない場合があります。

于 2012-09-22T03:08:33.630 に答える
0
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

このメソッドは推奨されてIOS 6いないため、代わりに以下のメソッドを使用できます。

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

あなたに応じてオリエンテーションを返します。

于 2012-09-22T06:16:17.697 に答える