在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];