先看效果图
这是素材
小弟刚开始直接用navigationBar加载这张背景图
appDelgate里:
然后得到的效果图:
有黑线 而且 下方显示不完整
然后开始考虑是不是Navigation的 barTintColor是白色 , 然后开始设置barTintColor设置成clearColor没有效果 还是一样 奇怪了 ,研究了一番 总结了两种方法
适合IOS7.0以上
1.设置NavigationBar的BackgroundImage和ShadowImage
注意 这种方法要将一张图片分成两段(根据自己的情况)
shadowImage:
BackgroundImage:
appDelegate里:
效果图:
2.在NavigationBar加上一个ImageView
在viewWillAppear里
注意 [self.navigationController.navigationBar sendSubviewToBack:titleView];这一句,这是一个层级的交换的动作,一定要加上这一句,不然会直接覆盖掉title和navigationItem
这是素材
小弟刚开始直接用navigationBar加载这张背景图
appDelgate里:
1
2
|
[[
UINavigationBar
appearance] setBackgroundImage:[
UIImage
imageNamed:@
"ToPointNavBgFull"
]
forBarMetrics:
UIBarMetricsDefault
];
|
然后得到的效果图:
有黑线 而且 下方显示不完整
然后开始考虑是不是Navigation的 barTintColor是白色 , 然后开始设置barTintColor设置成clearColor没有效果 还是一样 奇怪了 ,研究了一番 总结了两种方法
适合IOS7.0以上
1.设置NavigationBar的BackgroundImage和ShadowImage
注意 这种方法要将一张图片分成两段(根据自己的情况)
shadowImage:
BackgroundImage:
appDelegate里:
1
2
3
|
[[
UINavigationBar
appearance] setBackgroundImage:[
UIImage
imageNamed:@
"ToPointNavBg"
]
forBarMetrics:
UIBarMetricsDefault
];
[[
UINavigationBar
appearance] setShadowImage:[
UIImage
imageNamed:@
"shadowNav"
]] ;
|
效果图:
2.在NavigationBar加上一个ImageView
在viewWillAppear里
1
2
3
|
UIImageView
*titleView = [[
UIImageView
alloc]initWithImage:[
UIImage
imageNamed:@
"ToPointNavBgFull"
]];
[
self
.navigationController.navigationBar addSubview:titleView];
[
self
.navigationController.navigationBar sendSubviewToBack:titleView];
|
注意 [self.navigationController.navigationBar sendSubviewToBack:titleView];这一句,这是一个层级的交换的动作,一定要加上这一句,不然会直接覆盖掉title和navigationItem