ios - UINavigationBar添加背景图片的几种简单思路

Posted 神来芒果

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios - UINavigationBar添加背景图片的几种简单思路相关的知识,希望对你有一定的参考价值。

UITabBarController下面常常需要为多个ViewController设置导航栏样式,总结了一下遇到过的为UINavigationBar添加背景图片的几种简单思路
以设置背景图片为例:
第一种,直接在视图里面单独设置每个视图的UINavigationBar,适合每个页面需要不同的导航栏样式。
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bg_all-64"] forBarMetrics:UIBarMetricsDefault];
第二种:为各个页面建立一个共同的BaseNavigationController,设置好背景图片。其他视图控制器将它继承下来,这也可以达到一个整体设置效果。
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bg_all-64"] forBarMetrics:UIBarMetricsDefault];
第三种,在TabBarController里面写一个方法,通过遍历所有视图的导航栏来设置。记得调用这个方法
- (void) createNavigationBar
{//遍历所有视图的导航栏
for (UINavigationController *navi in self.viewControllers)
{
[navi.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bg_all-64"] forBarMetrics:UIBarMetricsDefault];
}
} 第四种:直接更改UINavigationBar的默认样式,这种方式和前一种的区别在于前者只是改变五个视图的导航栏,而后者是作用在UINavigationBar上。
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg_all-64"] forBarMetrics:UIBarMetricsDefault];

以上是关于ios - UINavigationBar添加背景图片的几种简单思路的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationBar 和新的 iOS 5+ 外观 API - 如何提供两个背景图像?

iOS6 和 7 的 UINavigationBar 背景图像

iOS 11 UINavigationBar 自定义背景总是在状态栏下扩展

在 iOS 5 中为 UINavigationBar 设置不同的背景图片

UINavigationBar 外观背景图像在 iOS 7.1 中重复和模糊

新的ios5api:自定义UINavigationBar背景属性与简单的功能!!!