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

时间:2016-12-30 07:30:27

标签: ios swift uitableview swift3 uinavigationbar

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

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

我还有以下内容:

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

我的页面上的一切看起来都不错,只是当我向上滚动tableView时,它按预期位于导航栏下方,但位于状态栏上方:

See tableView scrolling above status bar?

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

3 个答案:

答案 0 :(得分:2)

这会将UITableView置于状态栏下方。

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

答案 1 :(得分:2)

您隐藏了导航栏的默认背景,因此可以预料到这一点。这意味着您自己在导航栏中创建绿色背景。您必须手动扩展它以覆盖状态栏和导航栏,这是默认背景。

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

答案 2 :(得分:0)

您可以尝试UIEdgeInsetMake下的表格视图及其滚动视图

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