Cambiare lo sfondo in base all’orientamento del dispositivo

Ad esempio per eseguire il metodo setBackgroundForOrientation:UIInterfaceOrientation ad ogni cambio di orientamento del dispositivo:

Nel metodo viewDidLoad del ViewController:

  (void)viewDidLoad
  {
    [super viewDidLoad];

    [[UIDevice currentDevice]beginGeneratingDeviceOrientationNotifications];
    [self setBackgroundForOrientation:self.interfaceOrientation];

    ...
  }

Fare override del metodo shouldAutorotateToInterfaceOrientation

  (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
 {
    return YES;
 }

Implementare il metodo willRotateToInterfaceOrientation:

  
  (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:  (NSTimeInterval)duration {
     [self setBackgroundForOrientation:toInterfaceOrientation];

  }

Nel caso specifico dell’esempio riportato il metodo setBackgroundForOrientation sostituisce l’UIImageView con l’immagine di sfondo con quella adatta all’orientamento del dispositivo.

   (void) setBackgroundForOrientation:(UIInterfaceOrientation)orientation{
      UIImage *img = Nil;
      UIImageView * imageView = Nil;

      if (orientation == UIInterfaceOrientationLandscapeLeft || orientation ==   UIInterfaceOrientationLandscapeRight) {
          NSLog(@"UIInterfaceOrientationLandscape");
          img = [UIImage imageNamed:@"landLR"];
     } else {
          NSLog(@"UIInterfaceOrientationPortrait");
          img = [UIImage imageNamed:@"portLR"];
     }

     imageView = [[UIImageView alloc] initWithImage:img];
     [imageView setContentMode:UIViewContentModeScaleToFill];
     imageView.tag=99;
     for (UIView *subView in self.view.subviews)
     {
         if (subView.tag == 99)
         {
             [subView removeFromSuperview];

         }
     }

     [self.view addSubview:imageView ];
     [self.view sendSubviewToBack:imageView ];

     [imageView release];
     [img release];
 }
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...