要实现navigationBar的背景自定义图片,是直接定义一个UINavigationBar的category,并重写drawRect方法,在ios5下面,navigationBar的drawRect方法似乎都不被调用了。
解决方法是:在入口类 didFinishLaunchingWithOptions方法中,加入
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"xxx.png"] forBarMetrics:UIBarMetricsDefault];



附IOS5以下版本修改UINavigationBar方法

////顶部导航1像素背景平铺
@interface UINavigationBar(Customized)

@end

@implementation UINavigationBar(customImage)

-(void)drawRect:(CGRect)rect{
    UIImage *backgroundImage = [UIImage imageNamed:@"背景.png"];
    [backgroundImage drawInRect:CGRectMake(0, 0, 320, 44)];
}

@end