In 7.3 / 9/2 + Schnelles Deaktivieren der Rotationsanimation, wenn sich das Gerät dreht?

Diese Frage bezieht sich ausschließlich auf iOS9 +

Sagen Sie, Sie haben eine gewöhnliche moderne App (Autolayout, Storyboard, Universal), die alle vier Rotationspositionen erlaubt

Sie möchten, dass die Autorotation auf die normale Weise erfolgt, sodass die neuen einschränkungsbasierten Layouts verwendet werden, wenn der Benutzer das Gerät vom Querformat zum Hochformat dreht.

Aber Sie möchten einfach KEINE Animation, während der Benutzer das Gerät dreht. Sie möchten, dass es einfach auf das neue seitliche oder aufrechte Layout "klickt".

Die einzige Möglichkeit, dies zu erreichen, ist das Hinzufügen von:

override func viewWillTransitionToSize(size:CGSize,
       withTransitionCoordinator coordinator:UIViewControllerTransitionCoordinator)
    {
    coordinator.animateAlongsideTransition(nil, completion:
        {_ in
        UIView.setAnimationsEnabled(true)
        })
    UIView.setAnimationsEnabled(false)
    super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator);
    }

toeine view controller, eine höchste oder nahezu höchste VC, die den Rest der Containeransichten oder was auch immer in der Szene enthält.

Dies ist im Grunde die gleiche alte Idee, willRotateToInterfaceOrientation / didRotateFromInterfaceOrientation (beide jetzt in modernen iOS nicht mehr verwendbar) zum Ein- und Ausschalten von Animationen zu verwenden.

Allerdings gibt es viele Probleme

dies funktioniert nicht AppWide, es ist ein Chaos, es ist szene-basiert

es scheint sehr schlecht zu sein, um einfach alle Animationen auszuschalten

Sie können alle Arten von Rennstrecken sehen

Diese Frage bezieht sich ausschließlich auf iOS9 +

Heute gibt es eine bessere Möglichkeit, die Rotationsanimationen in einer App zu deaktivieren, die Quer- / Hochformat unterstützt ???

Diese Frage bezieht sich ausschließlich auf iOS9 +

Antworten auf die Frage(4)

Ihre Antwort auf die Frage