Si vous êtes venu à cette question en cherchant comment détecter un changement d'orientation (sans nécessairement vouloir désactiver la rotation), vous devez également savoir que viewWillTransitionToSize
qui est disponible à partir d'iOS 8.
Exemple Swift de aquí
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
coordinator.animateAlongsideTransition({ (UIViewControllerTransitionCoordinatorContext) -> Void in
let orient = UIApplication.sharedApplication().statusBarOrientation
switch orient {
case .Portrait:
println("Portrait")
// Do something
default:
println("Anything But Portrait")
// Do something else
}
}, completion: { (UIViewControllerTransitionCoordinatorContext) -> Void in
println("rotation completed")
})
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
}
Et si vous n'avez pas besoin de vous soucier de l'orientation réelle :
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
// do something
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
}
Exemple en Objective-C de aquí
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context)
{
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
// do whatever
} completion:^(id<UIViewControllerTransitionCoordinatorContext> context)
{
}];
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}
Et si vous n'avez pas besoin de vous soucier de l'orientation réelle (tirée de cette réponse ) :
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
// Do view manipulation here.
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}
Voir aussi
0 votes
Note. Il est probablement plus moderne d'utiliser simplement
viewDidLayoutSubviews
qui se chargera de toutes les modifications de la mise en page. (Rappelons que dans un avenir proche, les utilisateurs redimensionneront les applications dans Windows sur les appareils). La mise en page réactive est désormais la norme.