So verhindern Sie, dass sich ARSCNView während der Orientierungsänderung dreht

8

Ich verwende ARKit und möchte den Benutzern erlauben, die App sowohl im Hoch- als auch im Querformat zu verwenden. Ich möchte, dass alle UI-Steuerelemente bei einer Orientierungsänderung mit Ausnahme von ARSCNView gedreht werden. Ich habe versucht, die SzeneView in die entgegengesetzte Richtung zu transformieren, aber das hat nicht funktioniert.

%Vor%

Wie kann ich verhindern, dass sich die Szenenansicht der ARKit-Sitzung dreht, während alle anderen Benutzeroberflächensteuerelemente bei einer Richtungsänderung gedreht werden?

    
Praveen Gowda I V 03.10.2017, 23:41
quelle

1 Antwort

0

Sie können keine Gerätedrehungsregeln für die Ansicht angeben. Es muss auf View-Controller-Basis eingestellt werden. So funktioniert iOS. Um das zu erreichen, was Sie brauchen, müssen Sie das alleine bewältigen. Wenn Sie beispielsweise Ihre ARSCNView als Vollbildansicht anzeigen, können Sie sie in einer benutzerdefinierten Unterklasse UIViewController darstellen und die Rotationskonfiguration für diesen Controller festlegen.

Das Festlegen der unterstützten Ansichtsrotationen für einen bestimmten Ansichtscontroller kann auf viele Arten implementiert werden, darunter einige.

Ansatz # 1:

Sie können die unterstützten Ansichtsausrichtungen für UIViewController festlegen, indem Sie die Methode " application:supportedInterfaceOrientationsForWindow: " Ihres App-Delegaten überschreiben.

Beispielcode:

%Vor%

Referenz:

application:supportedInterfaceOrientationsForWindow: Methodendokumentation

Ansatz # 2:

Unterklasse Ihr UINavigationController und überschreiben Sie die folgende Eigenschaft:

%Vor%

Nun schaut dies immer in den supportedInterfaceOrientations des View-Controllers und legt die unterstützten Orientierungen basierend auf dem Rückgabewert fest. Dadurch können Sie dies einfach in jedem gewünschten Ansichtscontroller überschreiben und einen benutzerdefinierten Wert festlegen.

Zum Beispiel könnten Sie in SomeViewController einfach hinzufügen:

%Vor%

Referenz:

supportedInterfaceOrientations -Dokumentation

Ansatz # 3:

Wenn Sie Ihre UINavigationController nicht wie oben in Ansatz 2 kategorisieren möchten, können Sie SomeViewController als Navigationscontroller-Delegat festlegen, der navigationControllerSupportedInterfaceOrientations(:)

implementiert

Beispielcode:

%Vor%

Referenz:

Matts Antwort hier

    
Mamouneyya 21.10.2017 19:38
quelle

Tags und Links