我有一个TabBarController,其中包含一个子视图这是一个navigationController的选项卡之一。 我然后加载到导航控制器,其继承形成的UITableViewController的图。
我的问题是thta由于某种原因,表视图开始behing导航控制器,屏幕不是顶级,但大约一半时导航栏,表视图的第一个单元格的,因此顶部被切断。
任何人都可以提出如何移动的UITableViewController下来?
我有一个TabBarController,其中包含一个子视图这是一个navigationController的选项卡之一。 我然后加载到导航控制器,其继承形成的UITableViewController的图。
我的问题是thta由于某种原因,表视图开始behing导航控制器,屏幕不是顶级,但大约一半时导航栏,表视图的第一个单元格的,因此顶部被切断。
任何人都可以提出如何移动的UITableViewController下来?
编程修复它:
- (void)viewDidLoad {
UIEdgeInsets inset = UIEdgeInsetsMake(20, 0, 0, 0);
self.tableView.contentInset = inset;
}
这种“藏在导航栏后面”使用自动全屏布局问题是由于iOS的7。 请参阅iOS 7过渡指南 。
这有点迂回,因为它显示为在IOS 6在Simulator(布局明智;即在背后不卷起)。
是您的导航栏半透明 ? 我的是,并将其设置为不透光的修复它iPhone的iOS 6,iPhone的iOS 7,和模拟器7.0建筑的XCode 5(对我来说,我将它设置为半透明的视觉外观。)
您可以通过设置视图的框架属性的UITableView的框架设置明确的X,Y位置。 或者,你可以使用取决于您是否已通过IB或代码添加的实现代码如下界面生成器更改相同的属性。
例如。
myTable.frame = CGRectMake(0.0, myTable.frame.origin.y + NAV_BAR_HEIGHT, myTable.frame.size.width, myTable.frame.size.height);
这将定位表myTable的(这是一个指向的UITableView)导航栏下方,则还可能需要相应地调整平台的高度。 其中,我指示以恒定的导航栏的高度是44.0。
我通常做这类视图调整的,如果它已在负责视图控制器的viewWillAppear中是必要的。 这是不常见的,你需要做这种类型的调整,因此它可能是一些你可以通过改变你的看法正在安装的方式解决。
如果没有你的观点是如何设置的更多细节很难更具体。