Dans mon application, j'ajouter une vue chargée de UIViewAutosizingMaskFlexibleWidth
et avec XIB le résultat escompté que dans un des deux cas:ne fonctionne pas Dimensionnement automatique lors du chargement de rotation
- Ajouter le portrait sous-vue, et en tournant sur le paysage, redimensionne correctement la sous-vue;
- L'ajout de la sous-vue sur le paysage n'entraîne pas le redimensionnement de la largeur de la sous-vue comme cela se produit lors de la rotation;
Voici le code:
viewMenuList = [[MenuListController alloc] initWithNibName:@"MenuListController" bundle:[NSBundle mainBundle]];
viewMenuList.view.autoresizingMask = UIViewAutoresizingFlexibleWidth;
self.view.autoresizesSubviews = YES;
[self.view addSubview:viewMenuList.view];
[self.view sendSubviewToBack:viewMenuList.view];
[viewMenuList.view setNeedsLayout];
[viewMenuList.view setNeedsDisplay];
NSLog(@"frame do menu links view %f, %f, %f, %f", self.view.frame.origin.x, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
NSLog(@"frame do menu list view %f, %f, %f, %f", viewMenuList.view.frame.origin.x, viewMenuList.view.frame.origin.y, viewMenuList.view.frame.size.width, viewMenuList.view.frame.size.height);
La sortie de la console est:
2010-12-07 16:34:22.552 SlideShow_iPad[19352:207] frame do menu links view 0.000000, 0.000000, 1030.000000, 111.000000
2010-12-07 16:34:22.596 SlideShow_iPad[19352:207] frame do menu list view 0.000000, 0.000000, 768.000000, 109.000000
La dernière ligne devrait afficher une largeur de 1030, il ne devrait pas? Il redimensionne à 1030 après avoir tourné au portrait et retourné au paysage. La chose la plus étrange est que j'utilise la même technique dans la vue d'ensemble et a fonctionné.
Le fait est que le comportement réel est correct. Le problème est que j'ai mal compris la définition de l'autosizing. Autosizing ne signifie pas qu'il devrait définir la taille de l'image au moment où vous ajoutez une sous-vue. –