2010-04-15 17 views

Antwort

47

Code found here

Launching in Querformat-Modus

Anwendungen in iPhone OS normalerweise Einführung in Hochformat, um die Ausrichtung des Startbildschirms zu entsprechen. Wenn Sie eine Anwendung, die Hoch- und Querformat in dem beide läuft, Ihre Anwendung sollte immer starten in Portrait-Modus zunächst und dann lassen seine View-Controller die Schnittstelle nach Bedarf auf der Grundlage des Geräts Ausrichtung drehen. Wenn Ihre Anwendung nur im Querformatmodus ausgeführt wird, müssen Sie die folgenden Schritte ausführen, um sie zunächst in einer Querformatausrichtung zu starten: .

  • In Ihrem Info.plist-Datei der Anwendung, fügen Sie die UIInterfaceOrientation
    Schlüssel und setzen Sie den Wert auf den Modus
    Landschaft. Für Landschaft
    Orientierungen, können Sie den Wert
    dieses Schlüssels auf
    UIInterfaceOrientationLandscapeLeft
    oder
    UIInterfaceOrientationLandscapeRight.

  • Legen Sie Ihre Ansichten im Querformat-Modus und stellen Sie sicher, dass ihre der automatischen Optionen richtig eingestellt sind .

  • überschreiben, um Ansicht Controllers shouldAutorotateToInterfaceOrientation: Verfahren und das Rück YES nur für das
    gewünschte Querformat und NO
    für Porträtausrichtungen.

+0

Danke. Es ist wirklich hilfreich. – Tirth

+0

Vergessen Sie immer, dass shouldAutorotateToInterfaceOrientation Schritt, ohne dass Ihre gesamte Benutzeroberfläche zur Seite kommt ... –

10

bearbeiten die plist nur Unterstützung Landschaft, stellen Sie sicher, dass jeder in Uiviewcontroller/UITabBar usw. im shouldAutoRotateToInterfaceOrientation, die return sagt return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));.

+3

Oder noch besser: if (UIInterfaceOrientationIsLandscape (interfaceOrientation)) {zurück YES; } zurücksenden NO; – Sangraal

+5

Oder noch kürzer: zurück (UIInterfaceOrientationIsLandscape (interfaceOrientation)) –

+0

Noch kürzer ohne Klammern :-) –

26

Sie können auch verkürzen einfach alles zu

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

+1 für kurze und süße Lösung. –

29

Um Ihre App Landschaftsmodus nur, sollten Sie verwenden „Unterstützte Schnittstelle Orientations“ zu machen. (Targets -> YourApp -> Supported Interface Orientations -> Landscape Left & Right)

Supported Interface Orientations

Sie sollten auch die Ausrichtung der App gesetzt Info.plist Datei in Ihrer App (Info.plist file) durch die Supported interface orientations Schlüssel mit den Werten Landscape (left home button) und Landscape (right home button) anhängt.

Sie können willRotateToInterfaceOrientation und/oder didRotateFromInterfaceOrientation verwenden, um Orientierungsänderungen zu verarbeiten.


shouldAutorotateToInterfaceOrientation aus IOS veraltet 6 und heraus.

Rückkehr UIDeviceOrientationLandscapeLeft/Right für shouldAutorotateToInterfaceOrientation sollte Ihre App "Landschaft" machen:

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

auch auch der App ändern können Info.plist und View Orientation (wie oben beschrieben).


Zusätzlich empfehle ich Ihre Ansicht nach der Orientierung zu Landscape im Ändern Attribute Inspector. landscape

+1

Das gab es damals noch nicht, aber es ist gut über neuere Optionen zu wissen –