Il y a une très bonne explication de l'auto-mise en page et les rotations en Matthijs Hollemans post.
Vous pouvez le trouver ici:
http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2
Généralement, vous avez besoin d'environ 4 contraintes de positionnement de votre point de vue. Si mes points de vue ont taille constante, je préfère à la broche de la hauteur et la largeur. Après cela, vous pouvez utiliser des Haut et des contraintes d'espace pour faire ce que vous voulez. Par exemple, vous pouvez définir IBOutlets de la direction et de haut contraintes d'espace pour vos points de vue:
@interface ViewController : UIViewController {
IBOutlet NSLayoutConstraint *_leadingSpaceConstraint;
IBOutlet NSLayoutConstraint *_topSpaceConstraint;
}
Ensuite, le contrôle-glissez-le de la prise de votre contrainte.
Maintenant, vous pouvez directement changer votre point de vue contrainte de code:
_leadingSpaceConstraint.constant = NEW_CONSTRAINT_VALUE;
Pour valider vos modifications, vous devez appeler:
[self.view layoutIfNeeded];
Et si vous voulez le faire d'animation:
[UIView animateWithDuration:0.25
animations:^{
[self.view layoutIfNeeded];
}];
Je pense qu'il va travailler dans willAnimateRotationToInterfaceOrientation, parce que vous n'avez pas besoin de casser toutes les contraintes avec cette approche.
Quelques exemple:
Vous avez deux carrés de vue en mode portrait, l'un sous l'autre. Définir leur "espace à gauche pour superview" contraintes à 20, par exemple. Ensuite, réglez "en haut de l'espace de superview contrainte" à 20 pour la première vue, et à 120 € pour la seconde. Il sera de notre programme d'installation par défaut.
Puis, après la rotation, vous devez recalculer vos contraintes. Maintenant définir à la fois de haut contraintes à 20, et les principales contraintes à 20 et 120 respectivement. Puis de valider les modifications avec layoutIfNeeded.
J'espère que ça aidera.