web-dev-qa-db-fra.com

Mode paysage UNIQUEMENT pour iPhone ou iPad

Je veux créer une application qui n'utilise pas le mode Portrait.

Je ne sais pas si je dois modifier la liste ou avoir du code en plus de la liste

37
Cocoa Dev

Code trouvé ici

Lancement en mode paysage

Les applications dans iPhone OS se lancent normalement en mode portrait pour correspondre à l'orientation de l'écran d'accueil. Si vous avez une application qui s'exécute à la fois en mode portrait et paysage, votre application doit toujours démarrer en mode portrait au départ, puis laisser ses contrôleurs de vue faire pivoter l'interface selon les besoins en fonction de l'orientation du périphérique. Cependant, si votre application s'exécute en mode paysage uniquement, vous devez effectuer les étapes suivantes pour la lancer initialement dans une orientation paysage.

  • Dans le fichier Info.plist de votre application, ajoutez le UIInterfaceOrientation
    et définissez sa valeur sur
    mode paysage. Pour le paysage
    orientations, vous pouvez définir la valeur
    de cette clé pour
    UIInterfaceOrientationLandscapeLeft
    ou
    UIInterfaceOrientationLandscapeRight.

  • Présentez vos vues en mode paysage et assurez-vous que leurs options de redimensionnement automatique sont correctement définies.

  • Remplacez le shouldAutorotateToInterfaceOrientation: méthode et renvoie OUI uniquement pour le
    orientation paysage souhaitée et NON
    pour les orientations portrait.

47
Justin Gregoire

Pour rendre le mode paysage de votre application niquement, vous devez utiliser "Orientations d'interface prises en charge". (Targets -> YourApp -> Supported Interface Orientations -> Landscape Left & Right)

Supported Interface Orientations

Vous devez également définir l'orientation de l'application dans le fichier Info.plist De votre application (Info.plist file) en ajoutant la touche Supported interface orientations aux valeurs Landscape (left home button) et Landscape (right home button)row's

Vous pouvez utiliser willRotateToInterfaceOrientation et/ou didRotateFromInterfaceOrientation pour gérer les changements d'orientation.


shouldAutorotateToInterfaceOrientation est déconseillé de iOS 6 et out.

Le retour de UIDeviceOrientationLandscapeLeft/Right Pour shouldAutorotateToInterfaceOrientation devrait rendre votre application "paysage":

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

Vous pouvez également modifier le Info.plist Et View Orientation De votre application (comme expliqué ci-dessus).


De plus, je recommande de changer l'orientation de votre vue en Landscape dans l'inspecteur d'attributs landscape

29
Aleksander Azizi

Vous pouvez également tout raccourcir

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

éditez le plist pour ne prendre en charge que le paysage, puis assurez-vous que dans chaque uiviewcontroller/uitabbar etc., dans le shouldAutoRotateToInterfaceOrientation, le return dit return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));.

10
jrtc27