Swift:Tableview在导航栏下滚动,但在状态栏之上?

我用下面的技巧隐藏了导航栏的阴影:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) self.navigationController?.navigationBar.shadowImage = UIImage() 

我也有以下设置:

  self.extendedLayoutIncludesOpaqueBars = true self.automaticallyAdjustsScrollViewInsets = true self.tabBarController?.tabBar.isHidden = true 

在我的页面上,一切看起来都不错,除了当我滚动我的tableView它按预期在导航栏下,但在状态栏上方:

查看状态栏上方的tableView滚动?

我如何确保tableView在导航栏和状态栏下滚动?

这将把UITableView放置在状态栏的下面。

 self.edgesForExtendedLayout=UIRectEdgeNone; self.extendedLayoutIncludesOpaqueBars=NO; self.automaticallyAdjustsScrollViewInsets=NO; 

你隐藏了导航栏的默认背景,所以这是预期的。 这意味着你正在自己创build导航栏中的绿色背景。 您必须手动扩展它以涵盖默认背景将会执行的状态栏和导航栏。

或者使用绿色图像而不是透明的图像。

您可以尝试在UIEdgeInsetMake和其滚动视图下的表视图

 tableView.contentInset = UIEdgeInsetsMake(20.0, 0.0, 0.0, 0.0) tableView.scrollIndicatorInsets = UIEdgeInsetsMake(20.0, 0.0, 0.0, 0.0)