IPhone - UIView addSubview espace dans le haut
J'ai une vue qui est chargé dans la MainWindow.xib. C'est juste un point de vue avec une uiimageview en elle qui montre une image sur la totalité de l'écran ( 320 X 480 ). Lorsque l'application des charges que j'affiche ce point de vue, puis je vais faire un
[self.view addSubview:tabbarController.view];
Tab Bar Controller est juste un UITabBarController avec 2 Contrôleurs de Vue ajoutés. Lorsqu'il ajoute l'tabbarController de vue de la sous-vue, il laisse un vide au sommet de près de 20px. Mon application a une barre d'état, mais il s'agit fondamentalement de la place pour une autre. Ce qui se passe, à moins que j'ai ajouter à ma vue-contrôleur:
self.view.frame = CGRectMake(0, 0, 320, 480);
Quelqu'un peut-il expliquer cela. Je faisais
self.view = tabbarController.view;
mais on m'a dit que je ne devrais pas faire ça. Alors maintenant, je vais ajouter une sous-vue, mais je ne comprends pas pourquoi je dois ajuster le CGRect de mon point de vue, de ne pas montrer la 20px.
OriginalL'auteur Brian | 2009-08-31
Vous devez vous connecter pour publier un commentaire.
UITabBarController s'attend à avoir son avis ajouté comme une sous-vue de UIWindow, non pas comme une sous-vue de certains autres UIView. Le cadre de la propriété définit le décalage de la vue dans son superview, de sorte que le UITabBarController la mise en œuvre des décalages de son point de vue de l'image par 20 pixels par défaut pour laisser de la place pour la barre d'état. Vous êtes à l'aide de UITabBarController occupe un emploi atypique en l'ajoutant à vue qui ont déjà été compensée par 20 pixels pour la barre d'état. UITabBarController des décalages de son point de vue par un supplément de 20 pixels par rapport à son superview, ce qui provoque l'écart de vous voir.
Un propre moyen de résoudre ce problème est d'ajouter le UITabBarController est vue comme une sous-vue de la fenêtre au lieu de la vue:
(Note: Le keyWindow méthode de retour de votre fenêtre si vous avez déjà appelé makeKeyAndVisible. Sinon, vous pouvez définir une propriété de la fenêtre sur votre UIViewController.)
Il semble que votre instinct était bon ici. C'est juste un de ces limitations de conception en Cocoa Touch que nous devons travailler pour le moment. Gardez à l'esprit que vous n'avez pas nécessairement besoin d'ajouter le tabbarController.vue de la fenêtre de votre à partir de votre application délégué. Vous pouvez l'ajouter dans votre vue-contrôleur si c'est là où on pense qu'il fait le plus de sens. Vous avez juste besoin d'avoir accès à la fenêtre de l'objet, soit par l'intermédiaire de la keyWindow méthode, ou en le définissant comme une propriété sur votre contrôleur de retour dans applicationDidFinishLaunching:.
mais n'est-ce pas dire que la tabbarcontroller.la vue est maintenant une sous-vue de la fenêtre.point de vue? Mais il n'est pas correct dans mon cas, j'ai une annonce de la vue, puis un deuxième contentview. Et j'ajoute la tabbarcontroller.vue de la contentview. Dans ce mode le viewcontroller va gérer le contenu/adview selon les annonces. si j'ajoute le tabbarcontroller.vue de la fenêtre, je ne pense pas que je vais être capable de gérer les points de vue à l'aide de mon viewcontroller. qu'en pensez-vous?
Le UITabBarController de Référence de Classe dit, "Lors du déploiement d'une barre d'onglet de l'interface, vous devez installer ce point de vue comme la racine de votre fenêtre. Contrairement à d'autres contrôleurs de vue, une barre d'onglet de l'interface ne doit jamais être installé en tant qu'enfant d'un autre point de vue contrôleur". Je comprends pourquoi vous voulez tabbarcontroller.la vue à une sous-vue d'un point de vue différent dans votre cas. Malheureusement, vous auriez à la lutte contre le fait que cette classe ajuste ses cadres basé sur l'hypothèse que sa vue est une sous-vue de la fenêtre. Pensez à utiliser UITabBar personnalisé dans un UIViewController qui implémente UITabBarDelegate.
Intéressant, comment pourrais-je ajouter 20px à un viewcontroller onglet (l'enfant) de la UITabBarController pour le décalage de l'iOS7 barre d'état? J'ai essayé beaucoup de solutions et aucun travail. stackoverflow.com/questions/18921062/...
OriginalL'auteur cduhn