web-dev-qa-db-de.com

Universelle Anwendung mit Hochformat für iPhone und Querformat für iPad

Ich erstelle eine universelle Anwendung mit Swift. Ich habe Storyboard und Auto-Layouts verwendet. Voraussetzung ist die Erstellung einer universellen Anwendung, die die Hochformat-Ausrichtung nur für das iPhone und die Querformat-Ausrichtung nur für das iPad unterstützt.

Ich habe eine Benutzeroberfläche für iPhone entwickelt und werde jetzt die iPad-Benutzeroberfläche starten.

Die für das iPhone erstellte Benutzeroberfläche ist nicht mit der für das iPad erstellten Benutzeroberfläche identisch. Beide Benutzeroberflächen sind sehr unterschiedlich.

Ich denke darüber nach, separate Storyboards für iPhone und iPad zu erstellen. Gibt es einen geeigneten Weg, um dies zu erreichen?

36
user1988

Gehen Sie zur Datei info.plist, und fügen Sie ein Array mit dem Schlüssel "Unterstützte Schnittstellenorientierungen (iPhone)" hinzu, und fügen Sie die folgenden Werte hinzu:

  1. Porträt (unterer Home-Button)

Fügen Sie auf ähnliche Weise ein weiteres Array "Unterstützte Schnittstellenorientierungen (iPad)" hinzu und fügen Sie Folgendes hinzu:

  1. Porträt (unterer Home-Button)
  2. Landschaft (linker Home-Button)
  3. Landschaft (rechter Home-Button)

Siehe unten:enter image description here

75
Hamza Azad

Wenn Sie Ihre App nur für iOS 8 bereitstellen, würde ich ein Storyboard verwenden. Es ist einfacher, einen Bildschirm zu verwenden. Hier ist ein Link für ein tolles Tutorial. http://www.raywenderlich.com/83276/beginning-adaptive-layout-tutorial
Wenn Sie wie ich sind und auf iOS 6 abzielen möchten, würde ich separate Storyboards verwenden. Bleiben Sie auf jeden Fall bei Auto Layout, für was auch immer Sie sich entscheiden. 
Vergessen Sie nicht, dass wir 64-Bit unterstützen müssen. 
Viel Glück!

1
Murat Zazi

Wenn Sie dies für einen bestimmten ViewController festlegen möchten (alles auf dem iPad, aber nur Porträt auf dem iPhone zulassen), geben Sie dies in Ihre ViewController-Klasse (Swift 4) ein:

override var supportedInterfaceOrientations:UIInterfaceOrientationMask {
    return UIDevice.current.userInterfaceIdiom == .pad ? UIInterfaceOrientationMask.all : UIInterfaceOrientationMask.portrait
}
0
Dion