Sobes.tech
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.