Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change or disable the iPhone rotating animation when orientation changes

How do I change or disable the rotating animation when screen orientation changes from landscape to portrait, or vice versa?

like image 369
Aldrich Co Avatar asked Apr 29 '10 13:04

Aldrich Co


2 Answers

Yes, it is possible to disable the animation, without breaking everything apart.

The following codes will disable the "black box" rotation animation, without messing with other animations or orientation code:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [UIView setAnimationsEnabled:YES];
}


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    [UIView setAnimationsEnabled:NO];
  /* Your original orientation booleans*/
}

Place it in your UIViewController and all should be well. Same method can be applied to any undesired animation in iOS.

Best of luck with your project.

like image 122
Nils Munch Avatar answered Oct 14 '22 08:10

Nils Munch


If you dont want your view controllers to rotate just override the shouldAutoRotateToInterface view controller method to return false for whichever orientation you dont want to support...Here is a reference.

In the case that u just want to handle rotation some other way, you can return false in the above methods and register for UIDeviceOrientationDidChangeNotification like so

    NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
       selector:@selector(handleOrientationDidChange:)
           name:UIDeviceOrientationDidChangeNotification
         object:nil];

Now when u get the notifications u can do whatever you want with it...

like image 33
Daniel Avatar answered Oct 14 '22 07:10

Daniel