我有一个简单的标签式应用程序,其第一个标签是UITableViewController
。填充一些数据后,我注意到表格视图的顶部与状态栏重叠。
我已经尝试弄乱edgesForExtendedLayout
和类似的设置,但还没有找到神奇的组合。有谁知道如何纠正这个?
重现的步骤:
UIViewController
并将其替换为UITableViewController
UITableView
以下是设置和问题的几个屏幕截图:
答案 0 :(得分:28)
只需修改表格视图的contentInset
属性,即可在内容周围添加一些填充。在viewDidLoad()
中添加以下内容:
tableView.contentInset.top = 20
在Objective-C中,你不能直接分配到顶部,所以这样做:
self.tableView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0);
当然它可以是任意值,在这种情况下,它是状态栏的高度。
答案 1 :(得分:4)
正如评论中所建议的,一种方法是(在Swift 3中):
override func viewDidLoad() {
super.viewDidLoad()
tableView.contentInset.top = UIApplication.shared.statusBarFrame.height
}
但那并不干净。最好embed the UITableViewController in a UINavigationController(编辑器>嵌入>导航控制器)并取消选中"显示导航栏"在检查员。不需要调整!