在IOS4中,可以通过自定义UINavigationBar的drawRect方法,而且这种方式还不错,只要引入这个文件,就生效。
代码如下:
- @implementation UINavigationBar(UINavigationBarCategory)
- #pragma mark -
- #pragma mark 重载navigationBar的背景图片
- -(void)drawRect:(CGRect)rect{
- NSLog(@"drawRect");
- UIImage *image = [UIImage imageNamed:@"nav_bg.png"];
- [image drawInRect:CGRectMake(0,0,self.frame.size.width,self.frame.size.height)];
- }
- @end
但是呢,到了ISO5 这种方法就不再支持了,不过呢,给了一个一个方法 setBackgroundImage:forBarMetrics:
if([vc.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
//iOS 5 new UINavigationBar custom background
[vc.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavigationBarBg.png"] forBarMetrics: UIBarMetricsDefault];