UINavigationController Autoresizing considère que le comportement
-
22-09-2019 - |
Question
Je l'ai lu dans la documentation d'Apple sur le comportement de redimensionnement de UINavigationController et il n'a pas été un gros problème jusqu'à présent.
Je le code suivant pour mettre en place mon point de vue de UINavigationController:
navController.view.frame = CGRectMake(0, 40, 320, 420);
et cela suffit jusqu'à ce que la vue est obscurci par une vue modale, à quel point la vue est redimensionnée à la taille par défaut quelque part entre les appels de viewWillAppear
et viewDidAppear
(comme UINavigationController hérite de UIViewController).
Je tente de garder une bannière visible au-dessus du UINavigationController (dans les années 40 par 320 espace laissé disponible) mais cette bannière est toujours obscurci comme décrit ci-dessus.
Y at-il un moyen de surpress comportement Redimensionnement de UINavigationController sans sous-classement UIViewController moi-même?
La solution
Dans le constructeur d'interface, vous pouvez décocher la case à cocher redimensionnement automatique.
Dans le code, il est
[myNavController.view setAutoresizesSubviews: NO];
Autres conseils
Je vais essayer
myNavController.superview.autoresizesSubviews = NO
et, évidemment, vérifier myNavController.autoresizingMask
En dernier recours, sous-classe et son superview réimplémentez layoutSubviews