[写个教程是想分享给新手看,因为我也是从新手过来的,大虾路过别拍转]
iOS的NavigationController用得很广,里面的导航条更是经典,所以不断出现在各种应用上,久而久之,大家也就开始审美疲劳,觉得没有新意了。
我想大家在做自己应用的时候,都会有一个统一的界面风格,很多时候会发现导航条的样式与应用的风格无法统一,但又不想舍弃NavigationController
那忽左忽右的魅力,下面我就来手把手教大家自定义导航条的背景图片:
首先准备两张图片,分辨率分别是320*44(for普通屏幕),and 640*88(for高清显示)

CustomizedNavBarBg.png
CustomizedNavBarBg@2x.png
然后新建一个经典的Navigation-based Application项目,估计很多童鞋都找不到这个项目模版,因为我还在用XCode3.2.... 没办法,我觉得XCode4.x真的是不好用,兴许过段时间我会改变这个想法。不过没关系,我把代码贴在下面了,你们直接下载就行
接着New一个File,名字无所谓,我这里命名为:"UINavigationBar+Customized",类型为subclass of NSObject,把.h和.m文件内容替换如下:
UINavigationBar+Customized.h
1
2
3
4
5
#import <Foundation/Foundation.h>
@interface
UINavigationBar (Customized)
@end
UINavigationBar+Customized.m
1
2
3
4
5
6
7
8
9
10
11
#import "UINavigationBar+Customized.h"
@implementation
UINavigationBar (Customized)
- (
void
)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@
"CustomizedNavBarBg.png"
];
[image drawInRect:CGRectMake(0, 0,
self
.frame.size.width,
self
.frame.size.height)];
}
@end
接着再设置一下NavigationBar的TintColor,设置TintColor可以使得NavigationBar上的按钮颜色与我们的背景图片风格一致

这样就ok了,对,就这么简单,点击运行,NavigationBar的背景图片就变成我们想要的样子了,赶紧试试吧
1
2
3
4
5
|
#import <Foundation/Foundation.h>
@interface
UINavigationBar (Customized)
@end
|
1
2
3
4
5
6
7
8
9
10
11
|
#import "UINavigationBar+Customized.h"
@implementation
UINavigationBar (Customized)
- (
void
)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@
"CustomizedNavBarBg.png"
];
[image drawInRect:CGRectMake(0, 0,
self
.frame.size.width,
self
.frame.size.height)];
}
@end
|