2013-08-26 14 views
5

Ich erstelle eine Unterklasse von UIView, die ihre Unteransichten neu verteilen muss, wenn sich die Ausrichtung ändert.Autorotation in UIView-Unterklasse erkennen

es muss in der Lage, ohne zusätzlichen Code „in überall stecken“, so würde ich lieber nicht auf den UIViewController Methoden verlassen, um die Autorotation

Gibt es trotzdem zu erkennen, für die UIView zu wissen, wann die Orientierung hat geändert?

Antwort

9

Wie wäre es mit einer Benachrichtigung wie dieser, um die Orientierungsänderung zu erkennen?

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil]; 

Aber davor müssen Sie sich registrieren, um solche Benachrichtigungen zu generieren.

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
0

fand ich für mich, dass dies als die UIDeviceOrientationDidChangeNotification besser gearbeitet:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("layoutControls"), name: UIApplicationDidChangeStatusBarOrientationNotification, object: nil) 

ich gar nicht brauchen, um die erste Zeile mit beginGeneratingDeviceOrientationNotifications hinzufügen.