20 Stimmen

Bestimmung der Ausrichtung des Bildschirms und nicht der Ausrichtung des Geräts

El [[UIDevice currentDevice] orientation] Methode gibt eine Reihe von Ausrichtungen zurück, die über die Hoch- und Querformatausrichtung hinausgehen. Ich weiß sehr wohl, wie man überprüft, ob die zurückgegebene Ausrichtung "gültig" ist. Wenn die zurückgegebene Ausrichtung jedoch NICHT "gültig" ist, wenn meine App eine bestimmte Ausrichtung benötigt, um zu bestimmen, welche Methoden ausgeführt werden sollen, habe ich keine Möglichkeit zu wissen, welche Methode geeignet ist.

Ich habe eine Reihe von Lösungen für dieses Problem ausprobiert, aber das Einzige, was ich bisher herausfinden konnte, ist, zu prüfen, ob die Ausrichtung LandscapeLeft o LandscapeRight und wenn das nicht der Fall ist, nehme ich an, dass der Bildschirm im Hochformat ausgerichtet ist. Leider ist das nicht der Fall, wenn das Gerät nach oben zeigt und der Bildschirm im Querformat ist.

Ich habe versucht, die Ausrichtung des übergeordneten View-Controllers zu verwenden:

parentController.interfaceOrientation;

Leider kam es zurück UIDeviceOrientationUnknown . Ich suche SO und Google nach jemandem, der mit diesem Problem konfrontiert wurde. Es scheint mir dumm, dass Apple etwas anderes haben würde als LandscapeLeft/Right y PortraitUp/Down für ihre Ausrichtungen.

Was ich wirklich brauche, ist die Orientierung an den APPS und nicht an den Geräten, da diese manchmal nicht übereinstimmen. Irgendein Rat?

49voto

Chamara Paul Punkte 720

Haben Sie versucht, mit UIInterfaceOrientationPortrait / UIInterfaceOrientationLandscape ? Mit diesen Methoden erziele ich in der Regel recht gute Ergebnisse:

if(UIInterfaceOrientationIsPortrait(viewController.interfaceOrientation)) {
    //do portrait work
} else if(UIInterfaceOrientationIsLandscape(viewController.interfaceOrientation)){
    //do landscape work
}

Sie könnten auch versuchen UIDeviceOrientationIsValidInterfaceOrientation .

Diese geben nur die Ausrichtung der Anwendung zurück, die möglicherweise nicht mit der Ausrichtung des Geräts übereinstimmt.

Wenn diese nicht funktionieren, können Sie es auch versuchen:

[[UIApplication sharedApplication] statusBarOrientation]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X