2013-08-26 20 views
5

Sto creando una sottoclasse di UIView che deve ritrasmettere i suoi sotto-profili quando l'orientamento cambia.Rileva l'autorotazione nella sottoclasse UIView

ha bisogno di essere in grado di "collegare ovunque", senza alcun codice aggiuntivo quindi preferisco non fare affidamento sui metodi UIViewController per rilevare l'autorotazione

C'e 'qualche cosa per l'UIView di sapere quando l'orientamento ha cambiato?

risposta

9

Come su una notifica come questa per rilevare il cambiamento di orientamento ??

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

Ma, prima che sia necessario registrarsi per generare notifiche come questa.

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
0

ho scoperto che per me questo ha funzionato meglio del UIDeviceOrientationDidChangeNotification:

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

non ho nemmeno bisogno di aggiungere la prima linea con beginGeneratingDeviceOrientationNotifications.