Em 7.3 / 9/2 + Swift, como desativar a animação de rotação, quando o dispositivo gira?

Esta pergunta é estritamente sobre iOS9 +

Digamos que você tenha um aplicativo moderno comum (autolayout, storyboard, universal) que permita todas as quatro posições de rotação

você deseja que ele faça a rotação automaticamente da maneira normal, para que mude para seus novos layouts baseados em restrições quando o usuário alternar o dispositivo de paisagem para retrato

Mas você simplesmente não quer animação durante o usuário girar o dispositivo. Você deseja apenas "clicar" no novo layout lateral ou na vertical.

A única maneira de conseguir isso é adicionando:

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

para1 view controller, um VC mais alto ou quase o mais alto que mantém o restante das visualizações do contêiner ou qualquer outra coisa na cena.

Essa é basicamente a mesma idéia antiga de usar willRotateToInterfaceOrientation / didRotateFromInterfaceOrientation (agora inutilizáveis no iOS moderno) para ativar e desativar as animações.

No entanto, existem muitos problemas

isso não funciona no AppWide, é uma bagunça, é baseado em cenas

parece muito ruim desligar todas as animações

você pode ver todos os tipos de pista

Esta pergunta é estritamente sobre iOS9 +

Hoje em dia, existe alguma maneira melhor de desativar as animações de rotação em um aplicativo compatível com paisagem / retrato ???

Esta pergunta é estritamente sobre iOS9 +

questionAnswers(2)

yourAnswerToTheQuestion