web-dev-qa-db-fra.com

Application universelle avec orientation Portrait pour iPhone et orientation Paysage pour iPad

Je crée une application universelle à l'aide de Swift. J'ai utilisé Storyboard et Auto-Layouts. La condition requise est de créer une application universelle qui supportera l'orientation Portrait uniquement pour iPhone et l'orientation Paysage uniquement pour iPad.

J'ai développé une interface utilisateur pour iPhone et je vais maintenant commencer à utiliser l'interface utilisateur pour iPad.

De plus, l'interface utilisateur créée pour iPhone n'est pas identique à celle créée pour iPad, les deux sont très différentes.

Je songe à créer des storyboards séparés pour iPhone et iPad. Existe-t-il un moyen approprié d'y parvenir?

36
user1988

Accédez au fichier info.plist, ajoutez un tableau avec la clé "Orientations d'interface prises en charge (iPhone)", puis ajoutez-y les valeurs suivantes:

  1. Portrait (bouton d'accueil en bas)

De même, ajoutez un autre tableau "Orientations d'interface prises en charge (iPad)" et ajoutez ce qui suit:

  1. Portrait (bouton d'accueil en bas)
  2. Paysage (bouton d'accueil gauche)
  3. Paysage (bouton d'accueil de droite)

Voir ci-dessous:enter image description here

75
Hamza Azad

Si vous déployez votre application uniquement sur iOS 8, j'utiliserais un seul storyboard. Il est plus simple d'utiliser un seul écran. Voici un lien pour un excellent tutoriel. http://www.raywenderlich.com/83276/beginning-adaptive-layout-tutorial
Si vous êtes comme moi et que vous souhaitez vous concentrer sur iOS 6, j'utiliserais des storyboards distincts. Restez définitivement avec Auto Layout pour tout ce que vous décidez d'utiliser. 
N'oubliez pas que nous devons commencer à prendre en charge 64 bits. 
Bonne chance!

1
Murat Zazi

Si vous souhaitez définir ceci pour un ViewController spécifique (autoriser tout sur iPad mais uniquement portrait sur iPhone), insérez-le dans votre classe ViewController (Swift 4):

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