ios - UINavigationBar 外观 setBackgroundImage 隐藏状态栏

标签 ios uinavigationbar uiappearance

UIImage *gradientImage46 = [[UIImage imageNamed:@"navbar.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];


 [UINavigationBar appearance] setBackgroundImage:gradientImage46
                                           forBarMetrics:UIBarMetricsDefault];

我使用它来自定义应用程序中导航栏的外观。但是,这会导致状态栏呈纯黑色,不显示任何内容...时间、运营商、电池等。这是一个错误,还是我实现的方法不正确?

我使用 MainWindow.xib 接口(interface)方法在选项卡栏中运行它。第一个选项卡只是一个导航 Controller ,其中包含一个 View Controller 。另一个选项卡是一个导航 Controller ,里面有一个 TableView Controller 。如果我从一个选项卡转到表格 View ,然后再返回,就会出现状态栏。

navbar.png 为 320 x 44 像素。

最佳答案

我也遇到了将我的应用程序从 iOS 6 带到 iOS7 的问题,我通过以下方式更改代码解决了这个问题:

相反

[UINavigationBar appearance] setBackgroundImage:gradientImage46
                                       forBarMetrics:UIBarMetricsDefault];

我用

-(void) viewWillAppear:(BOOL)animated {

  [self.navigationController.navigationBar setBackgroundImage:gradientImage46 forBarMetrics:UIBarMetricsDefault];
}

关于ios - UINavigationBar 外观 setBackgroundImage 隐藏状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20573318/

相关文章:

ios - 我们如何使用自动布局在 for 循环的帮助下创建 UIlabel?

iOS Compass App : Location coordinates keeps changing. 如何稳定?

android - BottomNavigationView 设计与 XML *没有编程

uinavigationbar - 在 ios 13 中设置后退按钮箭头色调的正确方法是什么

ios - 更改UISearchBar中的CLEAR按钮的淡色颜色NOT CANCEL BUTTON

iOS 7+ : Unique identifier per device<->Store-ID (user) combination

php - 想在swift 4中通过php api上传图片

iOS 确保栏按钮项目在 iPhone SE 的 UINavigationBar 中显示为全尺寸

ios - UISearchBar完全自定义背景

ios - 使用 UIAppearance 代理样式化 UILabel