2015-09-20 12 views
5

Mi sembra che questo non funzioni più in iOS9. Era di fatto il modo di forzare i cambiamenti di orientamento sulla base della mia ricerca SO. Ora congela il mio gioco SpriteKit.iOS9: alternativa a UIDevice.currentDevice(). SetValue (...) per forzare l'orientamento

Sono solo io, e se qualcuno non sa di un'alternativa?

MODIFICA: Portrait e UpsideDown funzionano ancora. Sembra solo i modi di paesaggio ora causano un congelamento

EDIT 2: In realtà penso che si può andare Ritratto < -> UpsideDown e LandscapeLeft < -> LandscapeRight, ma non tra di loro

+0

Non è solo per te. Forzare l'orientamento non funziona più con me anche su iOS 9. Io uso per forzare l'orientamento in orizzontale quando in verticale per determinati scenari. – Chris

+0

è necessario impostare solo in xcode ... – Naitik

+0

iOS9.1, la dose NON funziona troppo – Jagie

risposta

1

Hai ragione . L'impostazione dell'orientamento del dispositivo non è possibile su iOS 9. Penso che ciò sia dovuto alla nuova modalità SplitScreen su iPad. Ora ci possono essere 2 applicazioni contemporaneamente sullo schermo e sarebbe "ingiusto" per l'unica applicazione decidere quale orientamento è consentito. Immagina due app che costringono orientamenti diversi, che cosa accadrebbe? Credo che Apple ha appena vieta in generale, anche se potrebbero limitarsi a iPad applicazioni non a schermo intero

+0

perché funziona ancora su iOS 10 su iPad? iPad ios 10 ha ancora la stessa funzione Modalità SplitScreen – chipbk10

15

aggiunta alla risposta di Alex: La mia esperienza è che Apple blocca solo il cambiamento di orientamento per iOS9 iPads che non lo fanno richiede a schermo intero. Quindi, se dite l'applicazione per richiedere a schermo intero, la rotazione dovrebbe funzionare:

enter image description here

Tuttavia, non ho idea se si sarà risolvere il congelamento SpriteKit poiché nella mia esperienza iOS9 abbondanza anche introdotto di bug SpriteKit.

+2

Vergogna che devi spuntare questa casella di controllo (che disabilita slide-over e split screen in iOS 9) solo per essere in grado di forzare una vista in un particolare orientamento. Preferirei essere in grado di fare entrambe le cose, ma l'orientamento forzato è più importante dello schermo slide-over/rovesciato al momento, a meno che tu non conosca un modo per avere entrambi? – AT3D

+0

Eroe del giorno. Grazie! Mi ha salvato un po 'di tempo. –

1

Se si dispone di due o più ViewControllers, e si desidera che ciascuno dei ViewControllers ha orientamento diverso, penso che il modo migliore per forzare l'orientamento della VC è quello di utilizzare questi codice qui sotto:

let value = UIInterfaceOrientation.LandscapeLeft.rawValue 
// let value = UIInterfaceOrientation.Portrait.rawValue 
UIDevice.currentDevice().setValue(value, forKey: "orientation") 

E ' funziona per me su iOS 9.