我正在尝试隐藏导航栏,并使用非透明状态栏。但是,出于某种原因,我只能限制不要为状态栏背景创建UIView 。
问题是我将导航栏设置为隐藏后状态栏变得透明,并且在表视图滚动中重叠。
-(void)viewWillAppear:(BOOL)animated
{
[self.tableView reloadData];
[[self navigationController] setNavigationBarHidden:YES animated:NO];
}
我想知道如何在不为单个UIViewController的背景创建UIView的情况下使状态栏不透明(不是为所有控制器创建UIView,因为我希望它在某些情况下是透明的)。
答案 0 :(得分:0)
您不能,状态栏本身始终是透明的。 HIG中与您相关的替代方法:
- 在状态栏后面显示自定义图像,例如渐变色或纯色。
- 在状态栏后面放置一个模糊的视图。有关开发人员的指导,请参见UIBlurEffect。
您提到表格视图滚动。可能是您有UITableViewController,这意味着您无法将子视图添加到viewController.view。您可以创建一个自定义容器视图控制器,将视图添加到状态栏下,请参见UIViewController documentation中的实施容器视图控制器部分。然后,将您的视图控制器嵌套在此容器中。