在AppDelegate.m的文件中加入如下定义,覆盖NavigationBar的drawRect函数:
@interface UINavigationBar (CustomBackgroud) - (void)drawRect:(CGRect)rect; @end @implementation UINavigationBar (CustomBackgroud) // iOS 4.* 下替换导航条皮肤 - (void)drawRect:(CGRect)rect { UIImage *navBarImg = [[UIImage imageNamed:@"nav_bar"] stretchableImageWithLeftCapWidth:1 topCapHeight:0.0]; [navBarImg drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; } @end
其中 nav_bar 是资源文件,这里使用objective-c的拉伸图片的函数来确定其拉伸状况。这样整个软件的导航栏都是以该nav_bar为背景。