不显示导航栏的不透明状态栏



我试图隐藏导航栏,并使用不透明的状态栏。然而,不知何故,我限制不为状态栏背景创建UIView

问题是,在我将导航栏设置为隐藏后,状态栏变得透明,并且它在表视图滚动上重叠。

-(void)viewWillAppear:(BOOL)animated
{
[self.tableView reloadData];
[[self navigationController] setNavigationBarHidden:YES animated:NO];
}

我想知道如何使状态栏不透明,而不为其背景仅为单个UIViewController创建UIView(不是为所有控制器创建,因为我希望它在某些情况下是透明的(。

不能,状态栏本身总是透明的。HIG中与您相关的替代方案:

  • 在状态栏后面显示自定义图像,如渐变色或纯色
  • 在状态栏后面放置一个模糊的视图。有关开发人员指南,请参阅UIBlurEffect

您提到了表格视图滚动。可能是您有UITableViewController,这意味着您无法将子视图添加到viewController.view。您可以创建一个自定义容器视图控制器,在状态栏下添加视图,请参阅UIViewController文档中的"实现容器视图控制器"一节。然后将视图控制器嵌套在此容器中。

最新更新