Modification de la taille de vue lorsque l'orientation change
-
20-09-2019 - |
Question
Je veux que ma sous-classe UIView à se comporter de telle sorte que quand il est monté dans l'orientation portrait est a une certaine taille et une autre taille lorsqu'il est monté en mode paysage.
Est-il possible d'avoir le point de vue indiquer au contrôleur de vue qui est le redimensionnement lorsque l'orientation change qu'il a cette « taille idéale »?
Pour clarifier, je suis convaincu que ce n'est pas quelque chose qui peut être fait avec le masque de redimensionnement automatique. Je pensais aussi que sizeThatFits: serait ce que je dois mais je ne l'ai pas appelé quand se change d'orientation
.Je sais aussi que je peux obtenir ce fait en remplaçant layoutSubviews du superview (ou peut-être une autre méthode du contrôleur de vue, mais je voudrais avoir ce comportement intégré dans le but de faciliter la réutilisation.
La solution
Vous obtenez plusieurs messages lorsque l'appareil tourne:
- shouldAutorotateToInterfaceOrientation:;
- willRotateToInterfaceOrientation:duration:;
- didRotateFromInterfaceOrientation:
Vous pouvez les utiliser pour re-mise en page votre point de vue lorsque l'utilisateur tourne.
Si vous ne souhaitez pas utiliser un contrôleur de vue, vous pouvez vous inscrire à la notification UIDeviceOrientationDidChangeNotification.