Alterando o tamanho da visão quando a orientação muda
-
20-09-2019 - |
Pergunta
Quero que minha subclasse UIView se comporte para que, quando for instalada na orientação de retrato, tenha um certo tamanho e outro tamanho quando instalado no modo paisagem.
É possível que a exibição indique ao controlador de exibição que a redimensiona quando a orientação muda que ela tem esse "tamanho ideal"?
Para esclarecer, estou confiante de que isso não é algo que pode ser feito com a máscara automática. Eu também pensei que sizethatfits: seria o que eu preciso, mas não o vi chamado quando a orientação mudou.
Também estou ciente de que posso fazer isso substituindo o LayoutSubViews da supervisão (ou talvez algum outro método do controlador de exibição, mas gostaria de ter esse comportamento incorporado na visão para facilitar a reutilização.
Solução
Você recebe várias mensagens quando o dispositivo gira:
- shouldAutorotateToInterfaceOrientation:;
- willRotateToInterfaceOrientation:duration:;
- didRotateFromInterfaceOrientation:
Você pode usá-los para re-agir sua visualização quando o usuário girar.
Se você não deseja usar um controlador de exibição, pode se registrar para a notificação UideviceRientationDidChangenotification.