J'ai un UIViewController racine que j'ajoute d'autres UIViewController comme sous-vues. Actuellement, chacune des sous-vues est trop basse (couvrant ma barre d'onglets de construction personnalisée). Lorsque j'essaie de quelque chose comme ce qui suit, cela ne fonctionne pas:
// Test setting frame size to see if it works
self.view.frame = CGRectMake(0, 0, 200, 200);
Cela ne change rien à la taille du cadre.
Donc, ma question est, comment puis-je définir mon cadre lorsque le UIViewController est initialisé après avoir été ajouté en tant que sous-vue?
@Nic je pense que lorsque vous ajoutez cette autre vue, à ce moment-là, vous devez définir la taille du cadre des autres vues comme ceci:
Someviewcontroller *c = initWithNibName
c.view.frame = CGRectMake(0, 0, 200, 200);
[self addSubView:c];
je ne sais pas si cela fonctionnera mais c'est quelque chose comme ça.
Tout d'abord, assurez-vous que votre cadre ne change pas de taille. Probablement qu'il/est/change de taille, mais vous vous attendez à ce qu'il coupe son contenu; ce comportement n'est pas activé par défaut sur une UIView, et devrait être défini via:
[[self view] setClipsToBounds:YES];
Pour vérifier et vous assurer que votre cadre ne change pas de taille après avoir défini le nouveau cadre, essayez de vous connecter ceci:
NSLog(@"New frame is: %@", NSStringFromCGRect([[self view] frame]));
ou simplement définir un point d'arrêt après la modification et inspecter la valeur dans votre débogueur.
Ensuite, il y a toujours ...
// Screen, less StatusBar
CGRect l_RectFrame = [UIScreen mainScreen].applicationFrame;
OU...
// Entire Screen
CGRect l_RectFrame = [UIScreen mainScreen].bounds;
MyView *l_aView = [[MyView alloc] initWithFrame:l_RectFrame];
...