我正在做一个基于导航的应用。我的rootview是一个UITableView,从那里我导航到UIView。出于某种原因,UIView的高度似乎比它应该的大,这意味着视图的底部没有显示。
我使用UITextView进行了一个非常简单的测试,底部有一个按钮,当我在Simulator中运行它时,只有按钮的上半部分显示,即使高度设置为460.
这是我用来导航的代码:
TestViewController *t = [[TestViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:t animated:YES];
在我的测试中,.xib只是在IB中将textview和一个按钮拖到UIView上。
当我导航到另一个UITableView时,我没有同样的问题。
我错过了什么?
答案 0 :(得分:2)
确保你有IB中的那些
view.autoresizingMask = UIViewAutoresizingFlexibleHeight;
textView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin;
button.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;
这意味着viewControllers的视图会被navigationController调整大小,textView会被主视图调整大小,并且顶部的距离保持与笔尖相同,最后距视图底部的距离保持不变你的按钮也一样。
如果您不知道如何在IB UI中翻译这些值,箭头会调整大小,“I”与该侧的距离是固定的 - 左,上,右,下。
基于导航的应用中视图的高度应为480 - statusbarHeight(= 20) - navigationBarHeight(= 44)= 416像素