上的UITableViewController上边距(Top margin on UITableVi

2019-08-17 15:49发布

我有一个TabBarController,其中包含一个子视图这是一个navigationController的选项卡之一。 我然后加载到导航控制器,其继承形成的UITableViewController的图。

我的问题是thta由于某种原因,表视图开始behing导航控制器,屏幕不是顶级,但大约一半时导航栏,表视图的第一个单元格的,因此顶部被切断。

任何人都可以提出如何移动的UITableViewController下来?

Answer 1:

编程修复它:

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


Answer 2:

这种“藏在导航栏后面”使用自动全屏布局问题是由于iOS的7。 请参阅iOS 7过渡指南 。

这有点迂回,因为它显示为在IOS 6在Simulator(布局明智;即在背后不卷起)。

是您的导航栏半透明 ? 我的是,并将其设置为不透光的修复它iPhone的iOS 6,iPhone的iOS 7,和模拟器7.0建筑的XCode 5(对我来说,我将它设置为半透明的视觉外观。)



Answer 3:

您可以通过设置视图的框架属性的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中是必要的。 这是不常见的,你需要做这种类型的调整,因此它可能是一些你可以通过改变你的看法正在安装的方式解决。

如果没有你的观点是如何设置的更多细节很难更具体。



文章来源: Top margin on UITableViewController