为什么tableView重叠状态在顶部?

时间:2014-12-04 18:31:52

标签: ios xcode uitableview

我已经创建了一个Tab视图控制器,并使用Table View将TableViewController作为其中一个选项卡。我不明白为什么表视图重叠模拟器顶部的状态?这是一个屏幕截图

enter image description here

表格视图是否应该自动向下调整以避免顶部位?我该怎么做才能重新格式化?我应该关闭顶部状态吗?以某种方式向下移动表视图?

4 个答案:

答案 0 :(得分:3)

您可以在屏幕上添加导航栏,或者如果您确实不需要,可以将tableview的顶部向下移动20分以调整状态栏。在iOS7 +中,状态栏显示在屏幕上。它是操作系统设计的一部分,以前的版本会将所有内容都移除。

如下面的评论所述,状态栏可能并不总是20.0f。您可以在viewWillAppear上以编程方式检查并相应地调整tableview框架。要以编程方式获取状态栏高度,您可以执行以下操作:

[UIApplication sharedApplication].statusBarFrame.size.height

正如一些答案已经发布,您可以编辑tableview的内容插入,但我不建议这样做,因为当您滚动内容时,它仍将位于状态栏下方。

答案 1 :(得分:0)

来自How do I prevent the status bar from covering my views in iOS 7?

  

您需要使用自动布局并应用锚定到"顶部布局指南"的垂直间距。您的视图控制器。

如果您需要更具体的步骤,请点击该链接,然后按照"将垂直空间约束添加到最顶层视图"中的步骤进行操作。

答案 2 :(得分:0)

在您的故事板中,检查您的UIViewControllersUITableViewController是否设置了Adjust Scroll View Insets

如果由于某些原因这对标签页视图不起作用,您可以通过编程方式更改UITableView的插入内容。

_tableView.contentInset = UIEdgeInsetsMake(20, 0.0, 0.0, 0.0);
_tableView.scrollIndicatorInsets = _tableView.contentInset;

答案 3 :(得分:0)

要自动在视图顶部包含标题间距,请将表视图控制器嵌入导航控制器中。要做到这一点:

  1. 在Xcode中打开你的故事板。
  2. 单击故事板中的“表视图控制器”项。
  3. 在Xcode菜单中,选择Editor - > Embed In - > Navigation Controller菜单项。
  4. 您会注意到导航控制器已插入Table View Controller前面,您的内容不会与状态栏重叠。