UITableViewController上边距

我有一个TabBarController,其中的一个选项卡包含一个导航控制器的子视图。 我然后加载到导航控制器的视图inheritanceformsUITableViewController。

我的问题是由于某种原因,表视图开始冲击导航控制器,而不是屏幕的顶部,但大约在导航栏的一半处,因此表格视图中第一个单元格的顶部被截断。

任何人都可以build议如何移动UITableViewController?

以编程方式修复它:

- (void)viewDidLoad { UIEdgeInsets inset = UIEdgeInsetsMake(20, 0, 0, 0); self.tableView.contentInset = inset; } 

这个“隐藏在导航栏后面”问题是由于iOS 7自动使用全屏布局。 请参阅iOS 7转换指南 。

这是有点迂回,因为它在iOS中显示在模拟器 (布局明智,即没有隐藏在后面)。

你的导航栏是半透明的吗? 我的是,并将其设置为在Iphone iOS 6,iPhone iOS 7以及使用XCode 5构build的Simulator 7.0上进行非半透明修复。(在我的情况下,我将其设置为半透明以便于视觉效果)。

您可以通过在视图上设置框架属性来将UITableView的框架设置为明确的X,Y位置。 或者,您可以使用界面构build器更改相同的属性,具体取决于您是通过IB还是通过代码添加了tableview。

例如。

 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中有必要,我通常会进行这种types的视图调整。 调整这种types的调整并不常见,因此可以通过更改视图的设置方式来解决问题。

没有关于如何设置视图的更多细节,很难更具体。