Junior — Middle
Como implementar uma mudança suave na exibição ao alterar a orientação do dispositivo?
sobes.tech IA
Resposta da IA
Para uma transição suave na visualização ao alterar a orientação do dispositivo no iOS, normalmente utilizam-se os métodos do ciclo de vida do controlador e animações.
A abordagem principal é sobrescrever o método viewWillTransition(to:with:) no seu UIViewController. Nesse método, pode-se obter as novas dimensões da tela e realizar uma animação de alteração de interface usando o objeto UIViewControllerTransitionCoordinator.
Exemplo:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: { _ in
// Aqui atualizamos o layout ou modificamos elementos de UI
self.view.layoutIfNeeded()
}, completion: nil)
}
Se estiver usando Auto Layout, alterar as restrições e chamar layoutIfNeeded() dentro da animação garantirá uma transição suave.
Também pode usar UIView.animate para animações personalizadas ao mudar a orientação.