UINavigationBar translucent 移除添加在导航栏上的图像

Posted

技术标签:

【中文标题】UINavigationBar translucent 移除添加在导航栏上的图像【英文标题】:UINavigationBar translucent removes the image which added on navigation bar 【发布时间】:2016-09-22 11:49:12 【问题描述】:

之前我想在navigation bar下方滚动UIView, 所以,我设置了

 self.navigationController.navigationBar.translucent = NO;

translucent设置为NO

缺少背景导航图像。它完全是白色的。

不知道这里出了什么问题。请在下面找到有关navigation Bar 的图片。

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"bg.png"]
                         forBarMetrics:UIBarMetricsCompact];
self.navigationController.navigationBar.translucent = NO;

感谢您的反馈!

【问题讨论】:

【参考方案1】:

使用UIBarMetricsDefault 而不是UIBarMetricsCompact

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"bg.png"] forBarMetrics: UIBarMetricsDefault];
self.navigationController.navigationBar.translucent = NO;

【讨论】:

我使用 UIBarMatricsDefault 也是同样的问题。

以上是关于UINavigationBar translucent 移除添加在导航栏上的图像的主要内容,如果未能解决你的问题,请参考以下文章

当 UINavigation 的 Translucent 设置为 false 时,视图约束发生变化

UISearchController 不能与非半透明 UINavigationBar 一起正常工作

iOS 8 中 UITableViewController 中的透明 UINavigationBar

如何为 UINavigationBar 设置不透明的 1px 高阴影图像?

ios 7 半透明+彩色导航栏

Swift - UINavigationController 栏颜色不会以编程方式更改