我使用以下技巧隐藏了导航栏的阴影:
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
滚动?
答案 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)