web-dev-qa-db-fra.com

Comment vérifier l'orientation de l'appareil par programmation sur iPhone?

Duplicata possible:
orientation iPhone

Comment vérifier l'orientation de l'appareil à tout moment par programmation dans l'iPhone?

Merci.

26
suse

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       
    }
73
Azhar

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
}
15
Sanket Pandya

Essayez aussi:

UIInterfaceOrientationIsPortrait(orientation)

et

UIInterfaceOrientationIsLandscape(orientation)
9
AlexVogel

-[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.

7
Joost

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);
}
4
Subrat

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)

3
Kyle