Comment faire pivoter l'écran en mode paysage?Comment faire pivoter l'écran en mode paysage?
Pouvez-vous suggérer un code simple?
Comment faire pivoter l'écran en mode paysage?Comment faire pivoter l'écran en mode paysage?
Pouvez-vous suggérer un code simple?
Il est plus compliqué que vous pensez d'abord! Après beaucoup de discussions ce post de blog (avec un lien vers la discussion plus tard) contient la plus propre réponse:
Ce guide décrit comment vous pouvez activer la rotation automatique dans votre application: http://developer.apple.com/iphone/library/codinghowtos/UserExperience/index.html#GENERAL-HANDLE_AUTOROTATION_OF_MY_USER_INTERFACE
Ce guide décrit comment vous pouvez démarrer votre application en mode paysage: http://developer.apple.com/iphone/library/codinghowtos/UserExperience/index.html#GENERAL-START_MY_APPLICATION_IN_LANDSCAPE_MODE
dans le UIViewController, vous devriez avoir la méthode
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
pour faire tourner automatiquement.
Si votre application a un UITabBarController alors vous devez sous-classe la UITabBarController et ajouter la méthode à elle also.Something comme ceci:
@interface MyTabBarController : UITabBarController {
}
@end
#import "MyTabBarController.h"
@implementation MyTabBarController
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
@end
- shouldAutorotateToInterfaceOrientation: obsolète dans iOS 6.0. Voir [this] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/UIViewController/shouldAutorotateToInterfaceOrientation :). – JohnK
Merci Sorina. Avoir besoin de UITabBarController
shouldAutorotateToInterfaceOrientation:
m'a donné toutes sortes de frustrations car ce n'est pas une classe que je sous-classifiais pour une raison quelconque (c.-à-d., La fonctionnalité par défaut était bien pour mon application). En tant que solution plus légère que la sous-classe j'ai utilisé une catégorie (peut-être tout de même, mais il semble plus léger).
@interface UITabBarController (WithRotation)
@end
@implementation UITabBarController (WithRotation)
- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {
return YES;
}
@end
p.s. Si vous souhaitez uniquement prendre en charge certaines orientations, testez l'interfaceOrientation et ne renvoyez YES que dans les orientations appropriées.
p.p.s. Qu'est-ce que info.plist Supported interface orientations
? La seule chose qui semble importer est ce qui est retourné de shouldAutorotateToInterfaceOrientation:
- shouldAutorotateToInterfaceOrientation: obsolète dans iOS 6.0. Voir [ici] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/UIViewController/shouldAutorotateToInterfaceOrientation :). – JohnK
Il suffit d'implémenter ceci dans votre fichier de contrôleur de vue, et vous avez terminé.
- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation
{
return YES;
}
- shouldAutorotateToInterfaceOrientation: obsolète dans iOS 6.0. Voir [this] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/UIViewController/shouldAutorotateToInterfaceOrientation :). – JohnK
C'est un double de http://stackoverflow.com/questions/402/iphone-app-in-landscape-mode ou http://stackoverflow.com/questions/1437636/how-to-autorotate -from-portrait-to-landscape-mode –