1

私のアプリケーションのビルド設定では、サポートされているすべての方向(逆さま以外)がチェックされています。

ただし、アプリを起動すると、ポートレートで表示することを意図していない特定のビューが自動回転し、ビューの半分がカットオフされます。これらのビューを回転させたくありません。

どうすればこれを防ぐことができますか?iveは以下を使用してみました:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
    return YES;
if(interfaceOrientation == UIInterfaceOrientationLandscapeRight)
    return YES;

return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

ただし、デバイスは可能な場合でもポートレートを変更したいと考えています。どんな助けでも素晴らしいでしょう。

4

3 に答える 3

0

shouldAutorotateToInterfaceOrientation廃止されました。新しい代替品はshouldAutoRotateです。の値を返す前にインターフェイスの向きを判断するには、UIViewControllers のプロパティをshouldAutoRotate使用します。interfaceOrientationたとえば、次のようなものがあります。

-(BOOL)shouldAutoRotate{
    if (self.interfaceOrientation == UIInterfaceOrientationPortrait){
        return YES;
    }
    else {
        return NO;
    }
}
于 2012-10-17T04:18:31.433 に答える
0

このメソッドは非推奨であり、iOS 6 では呼び出されません。詳細については、Apple のドキュメント、または新しいメソッドに関する SO に関する無数の質問の 1 つを参照してください。

于 2012-10-16T23:24:18.987 に答える
0

回転させたくないビューは、ナビゲーションまたはタブ バーに埋め込まれていますか? もしそうなら、私はこれとまったく同じ問題に直面しました。クラスをタブバー/ナビゲーションバーに割り当て、ios 6 の新しいメソッドを次のようにオーバーライドする必要があります。

-(BOOL)shouldAutoRotate
{
return NO;
}

これがあなたのタイプの問題かどうか教えてください。また、サブビューの 1 つで回転できるようにするために、NSNotificationCenter を使用して向きの変更を実装する必要がありました。これがあなたが探しているものであるかどうかを投稿します。

お知らせ下さい!

于 2012-10-17T00:15:10.907 に答える