Eventuali duplicati:
iPhone orientationCome verificare l'orientamento del dispositivo a livello di codice in iPhone?
Come verificare l'orientamento del dispositivo in qualsiasi punto fuori tempo di programmazione in iPhone?
Grazie.
Eventuali duplicati:
iPhone orientationCome verificare l'orientamento del dispositivo a livello di codice in iPhone?
Come verificare l'orientamento del dispositivo in qualsiasi punto fuori tempo di programmazione in iPhone?
Grazie.
-[UIViewController interfaceOrientation]
Tuttavia è possibile recuperare il deviceOrientation, indipendente dalla corrente orientamento dell'interfaccia:
[[UIDevice currentDevice] orientation]
leggere la documentazione per ulteriori informazioni, però, è necessario fare alcune altre cose da fai quel lavoro
Prova anche:
UIInterfaceOrientationIsPortrait(orientation)
e
UIInterfaceOrientationIsLandscape(orientation)
Qui ci sono le macro UIDeviceOrientationIsLandscape
e UIDeviceOrientationIsPortrait
in modo piuttosto controllare separatamente si può fare in questo modo ...
if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
{
// code for landscape orientation
}
O
if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
{
// code for Portrait orientation
}
questo metodo funziona bene, ma per me funziona solo all'interno del metodo di viewDidAppear. Sto usando stroyboad. È corretto ? –
Questo non funziona di nuovo in iOS8 – Jacky
È possibile anche controllare all'interno della funzione
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if(interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
//do for portrait
}
else
{
//do for Landscape
}
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight ||
interfaceOrientation == UIInterfaceOrientationPortrait ||
interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
}
Provalo.
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
if (([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait) )
{
// do something for Portrait mode
}
else if(([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight) || ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationLandscapeLeft))
{
// do something for Landscape mode
}
È necessario posizionare [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
nella vostra AppDelegate didFinishLaunchingWithOptions
Poi, in qualsiasi punto dell'applicazione è possibile ottenere l'orientamento corrente con:
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
e l'orientamento di prova con:
UIInterfaceOrientationIsPortrait(orientation)
UIInterfaceOrientationIsLandscape(orientation)
Dovresti testare la variabile 'orientation' usando' UIDeviceOrientationIsLandscape' non usando 'UIInterfaceOrientationIsLandscape'. – Webdevotion
Possibile duplicato [orientamento iPhone] (http://stackoverflow.com/q/634745/194544) – beryllium
Prova questo: http://jayprakashdubey.blogspot.in/2014/07/check-device-orientation.html –
È possibile utilizzare un metodo come willTransitionToTraitCollection: withTransitionCoordinator: questo metodo viene chiamato ogni volta che la raccolta di tratti del controller di visualizzazione cambia. I tratti possono essere le classi di dimensioni orizzontali e verticali. Quindi all'interno del metodo possiamo verificare quanto segue (in Swift): cambia newCollection.verticalSizeClass {case .Compact: // è landscape case. Regolare,.Non specificato: // ritratto di E} – plusangel