我已经创建了一个Tab视图控制器,并使用Table View将TableViewController作为其中一个选项卡。我不明白为什么表视图重叠模拟器顶部的状态?这是一个屏幕截图
表格视图是否应该自动向下调整以避免顶部位?我该怎么做才能重新格式化?我应该关闭顶部状态吗?以某种方式向下移动表视图?
答案 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)
在您的故事板中,检查您的UIViewControllers
或UITableViewController
是否设置了Adjust Scroll View Insets
。
如果由于某些原因这对标签页视图不起作用,您可以通过编程方式更改UITableView
的插入内容。
_tableView.contentInset = UIEdgeInsetsMake(20, 0.0, 0.0, 0.0);
_tableView.scrollIndicatorInsets = _tableView.contentInset;
答案 3 :(得分:0)
要自动在视图顶部包含标题间距,请将表视图控制器嵌入导航控制器中。要做到这一点:
Editor
- > Embed In
- > Navigation Controller
菜单项。您会注意到导航控制器已插入Table View Controller前面,您的内容不会与状态栏重叠。