przestrzegać UIDeviceOrientationDidChangeNotification
:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil];
...
- (void)orientationDidChange:(NSNotification *)note
{
NSLog(@"new orientation = %d", [[UIDevice currentDevice] orientation]);
}
UIDevice Class Reference
Należy zauważyć, że yo uneed dodać -beginGeneratingDeviceOrientationNotifications
kiedy chcesz te powiadomienia mają być wysyłane, i nazywają -endGeneratingDeviceOrientationNotifications
kiedy chcesz je zatrzymać. Ich generowanie ma wpływ na baterię, więc powinieneś to robić tylko wtedy, gdy widok jest na ekranie. UIViewController
robi to wszystko dla ciebie, więc jeśli masz kontroler widoku, warto pozwolić mu wykonać pracę.
To byłoby idealne rozwiązanie, gdyby zmiany dokonane w wywołaniu layoutSubviews mogły być animowane. –