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 +