2011-02-06 4 views
0

Je fais une application basée sur la navigation. Mon rootview est un UITableView et à partir de là je navigue vers un UIView. Pour une raison quelconque, la hauteur de l'UIView semble plus grande qu'elle ne devrait l'être, ce qui signifie que le bas de la vue n'est pas visible.UIView bottom ne montre pas

Je l'ai fait un test très simple à l'aide d'un UITextView avec un bouton en bas, et seulement la moitié supérieure du bouton affiche dans la vue quand je le lance dans Simulator même si la hauteur est réglée sur 460.

Voici le code que j'utilise pour naviguer:

TestViewController *t = [[TestViewController alloc] initWithNibName:nil bundle:nil]; 
[self.navigationController pushViewController:t animated:YES]; 

dans mon test, le .xib est juste fait en faisant glisser un IB textview et un bouton à la UIView.

Je n'ai pas le même problème lorsque je navigue vers un autre UITableView.

Qu'est-ce qui me manque?

+0

Il est vraiment d'informations ne suffit pas dans votre question pour y répondre. – Max

+0

Je me rends compte que la quantité d'informations est rare, mais il n'y en a vraiment pas beaucoup plus. Je l'ai décomposé à un strict minimum de code pour essayer de localiser le problème, mais pas de chance. S'il vous plaît informez-moi quelles autres informations vous auriez besoin pour aider, merci. –

Répondre

2

Assurez-vous que vous avez ceux de l'IB

view.autoresizingMask = UIViewAutoresizingFlexibleHeight; 
textView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin; 
button.autoresizingMask = UIViewAutoresizingFlexibleTopMargin; 

ce qui signifie que la vue de viewControllers se redimensionnée par le NavigationController, le textView se redimensionnée par la vue principale et la distance du haut reste le même dans votre plume, et enfin la distance depuis le bas de la vue reste la même pour votre bouton.

Si vous ne savez pas comment traduire ces valeurs dans votre interface utilisateur IB, les flèches sont redimensionnées et "I" est la distance fixe de ce côté - gauche, haut, droite, bas.

La hauteur de la vue dans une application à base de navigation doit être 480 - statusbarHeight (= 20) - navigationBarHeight (= 44) = 416 pixels

+0

Merci beaucoup. Je suppose que je n'ai pas besoin de souligner mon statut de noob, alors il suffit de dire que 416 a fait l'affaire. –

+0

Assurez-vous que vous apprenez cette mise en page automatique/taille importe avant d'aller dans des vues plus complexes, il va gagner beaucoup de votre temps à essayer de déterminer quel paramètre ruine votre mise en page :). Nice nom btw snooker amusant? – tsakoyan

+0

Haha, il suffit de lire votre commentaire maintenant! Oui, grand fan de billard! –