web-dev-qa-db-ja.com

iPhoneまたはiPadのみの横長モード

ポートレートモードを使用しないアプリケーションを作成したいのですが。

Plistを編集する必要があるのか​​、plistに加えてコードがあるのか​​わからない

37
Cocoa Dev

ここにコードが見つかります

横向きモードで起動する

IPhone OSのアプリケーションは通常、ホーム画面の向きに合わせて縦長モードで起動します。縦向きモードと横向きモードの両方で実行されるアプリケーションがある場合、アプリケーションは常に最初は縦向きモードで起動し、その後、デバイスの向きに基づいて、必要に応じてビューコントローラにインターフェースを回転させる必要があります。ただし、アプリケーションが横向きモードでのみ実行される場合は、最初に横向きで起動するように次の手順を実行する必要があります。

  • アプリケーションのInfo.plistファイルに、UIInterfaceOrientationを追加します
    キーを押し、その値を
    横長モード。横向き
    向き、値を設定できます
    このキーの
    UIInterfaceOrientationLandscapeLeft
    または
    UIInterfaceOrientationLandscapeRight.

  • ビューを横長モードでレイアウトし、自動サイズ変更オプションが正しく設定されていることを確認します。

  • ビューコントローラのshouldAutorotateToInterfaceOrientation:メソッドを使用して、
    望ましい横向きとNO
    縦向きの場合。

47
Justin Gregoire

アプリを横向きモードにするonlyには、「サポートされているインターフェースの向き」を使用する必要があります。 (_Targets -> YourApp -> Supported Interface Orientations -> Landscape Left & Right_)

Supported Interface Orientations

また、アプリの_Info.plist_ファイルでアプリの向きを設定する必要があります(Info.plist file)_Supported interface orientations_キーに値Landscape (left home button)およびLandscape (right home button)を追加します。 row's

方向の変更を処理するには、willRotateToInterfaceOrientationdidRotateFromInterfaceOrientationを使用できます。


shouldAutorotateToInterfaceOrientationiOS 6から非推奨になりました。

shouldAutorotateToInterfaceOrientationに対して_UIDeviceOrientationLandscapeLeft/Right_を返すと、アプリは「横長」になります。

_- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
_

また、アプリの_Info.plist_および_View Orientation_を変更する場合もあります(上記で説明)。


さらに、Attributes Inspectorでビューの向きをLandscapeに変更することをお勧めします。 landscape

29

あなたはそれをすべてに短くすることもできます

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
26
fedmest

plistを編集してランドスケープのみをサポートし、次にすべてのuiviewcontroller/uitabbarなどでshouldAutoRotateToInterfaceOrientationreturnreturn ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));であることを確認してください。

10
jrtc27