2016-12-30 90 views
2

我使用下面的诀窍藏在导航栏上的影子: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它导航栏下都按预期,但上方的状态栏:

See tableView scrolling above status bar?

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

+0

尝试'self.extendedLayoutIncludesOpaqueBars = false' –

+0

@ Mr.Bista谢谢,我试过,但仍然无法正常工作。 – leonardloo

回答

0

您可以尝试表视图作为UIEdgeInsetMake之下,也是它的滚动视图

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

谢谢,但我也尝试过,并没有工作。这只会将表格视图向下移动,但是当我将表格视图向上滚动到状态栏时,就会发生同样的情况。 – leonardloo

+0

你的表滚动视图是转移到顶部然后试试这个** tableView.bounces = false ** –

2

这将会把状态栏下的UITableView。

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

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

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

+0

谢谢!这是解决方案。它是将背景图像设置为绿色! – leonardloo