Duplicata possible:
orientation iPhone
Comment vérifier l'orientation de l'appareil à tout moment par programmation dans l'iPhone?
Merci.
Voici les macros UIDeviceOrientationIsLandscape
et UIDeviceOrientationIsPortrait
donc plutôt vérifier séparément, vous pouvez le faire comme ça ...
if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
{
// code for landscape orientation
}
OR
if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
{
// code for Portrait orientation
}
Essayez-le.
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
if ( ([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait) )
{
// do something for Portrait mode
}
else if(([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight) || ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationLandscapeLeft))
{
// do something for Landscape mode
}
Essayez aussi:
UIInterfaceOrientationIsPortrait(orientation)
et
UIInterfaceOrientationIsLandscape(orientation)
-[UIViewController interfaceOrientation]
Cependant, il est possible de récupérer le deviceOrientation, indépendamment de l'orientation actuelle de l'interface:
[[UIDevice currentDevice] orientation]
Lisez la documentation pour plus d'informations cependant, vous devez faire plus de choses pour que cela fonctionne.
Vous pouvez également vérifier dans la fonction
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if(interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
//do for portrait
}
else
{
//do for Landscape
}
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight ||
interfaceOrientation == UIInterfaceOrientationPortrait ||
interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
}
Vous devez placer [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
Dans votre AppDelegate didFinishLaunchingWithOptions
Ensuite, n'importe où dans votre application, vous pouvez obtenir l'orientation actuelle avec:
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
Et testez l'orientation avec:
UIInterfaceOrientationIsPortrait(orientation)
UIInterfaceOrientationIsLandscape(orientation)