2017-10-05 2 views
2

Wir haben eine App, die ein an die Audiobuchse (oder Lightning-Port in iPhone7 oder später) angeschlossenes Zubehör verwendet. Sie muss in bestimmten Orientierungen ausgeführt werden iOS-Gerät.Die Ausrichtung der Schnittstelle kann nicht umgekehrt auf dem iPhone gedreht werden

Es gibt derzeit keine Probleme bei der Einstellung der Geräteausrichtung im Simulator oder im tatsächlichen Gerät für jedes iPhone, mit Ausnahme des iPhoneX-Simulators.

Aktueller Code zur Einstellung Orientierung:

- (BOOL)shouldAutorotate { 
    return YES; 
} 

- (UIInterfaceOrientationMask)supportedInterfaceOrientations 
{ 
    //device checks omitted 
    return UIInterfaceOrientationMaskPortraitUpsideDown; 
} 

Target settings with orientations enabled

Stapelüberwachung:

TF uncaught exception reason : Supported orientations has no common orientation with the application, and [RootNavigationController shouldAutorotate] is returning YES 
2017-10-05 09:35:02.692945+0200 [65045:74145368] *** Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'Supported orientations has no common orientation with the application, and [RootNavigationController shouldAutorotate] is returning YES' 

Dieses arbeitet an iPhone5, iPhone6, iPhone6 ​​+, iPhone7 und iPhone7 + Geräte und iPhone8 Simulatoren. Es scheint auch kein iOS11-Problem zu sein, da mein iPhone7 derzeit iOS11 ausführt. Das einzige Gerät, mit dem ich momentan Probleme habe, ist der iPhoneX-Simulator.

+0

Auf iOS 11.2 sollte autorotate nicht mehr aufgerufen werden. Der gesamte alte Rotationscode scheint veraltet zu sein: "Ab iOS 8 sind alle rotationsbezogenen Methoden veraltet" in der Dokumentation von UIViewController. Ich habe eine harte Zeit damit auch zu versuchen, Rotation auf dem iPhone X zu verhindern. – RickJansen

Antwort

2

Es scheint, dass das iPhone X keine Upside-Down-Ausrichtung unterstützt; siehe https://forums.developer.apple.com/message/268015. Ein Apple-Mitarbeiter sagt: "Es ist von Entwurf. Wir werden Dokumentation in einer zukünftigen Version aktualisiert, um das zu reflektieren."

Sie erhalten immer noch die Orientierungsänderung Benachrichtigung, zumindest in der Sim, aber wie Sie gefunden haben, können schlechte Dinge passieren, wenn Sie darauf handeln. In meinem Fall bekomme ich keine Ausnahme, aber meine Benutzeroberfläche wird nicht ordnungsgemäß neu gezeichnet.

Ich füge Code hinzu, um ein umgedrehtes iPhone X zu erkennen und das Neuzeichnen der Benutzeroberfläche zu verhindern; Es funktioniert in der Sim und wir müssen abwarten, ob es auf dem echten Gerät funktioniert (glücklicherweise beinhaltet mein Anwendungsfall für Upside-Down nur ein Kopfhörer-Gerät, also den Verlust von Upside-Down auf dem iPhone X) ist keine große Sache für mich).

Das Ergebnis ist, dass diejenigen von uns mit Beleuchtung Port Sensoren, die auf der Oberseite sein wollen, nicht in der Lage sein wird, iPhone X Benutzer die gleiche Benutzerfreundlichkeit wie auf "kleineren" iPhones, zumindest nicht ohne einige mühsame UI jiggery- pokery mit vielen affinen Transformationen zu drehen und/oder Flip-Elemente zu erscheinen upside-down, während immer noch zu entsprechen, was das Telefon denkt ist es tun. Seufzer.

+0

Ich denke, Apple war zu faul, um eine sinnvolle Möglichkeit zu finden, das Layout der ** Split ** Statusleiste des iPhone X anzupassen auf dem unteren Bildschirmrand angezeigt werden. –

Verwandte Themen