一、修改导航栏背景
[
self
.navigationController.navigationBar
setBackgroundImage:[UIImage
imageNamed:
@"yourNavBgHere"
]
forBarMetrics:UIBarMetricsDefault];
为了确保运行的版本在5.0以上,我们需要加一句判断:
//
* iOS 5 only *
if
([[[UIDevice currentDevice] systemVersion] floatValue] > 4.9) {
[
self
.navigationController.navigationBar
setBackgroundImage:[UIImage imageNamed:
@"yourNavBgHere"
]
forBarMetrics:UIBarMetricsDefault];
}
对于iOS4以下版本我们则需要重载UINavigationBar的drawRect方法。
@implementation
UINavigationBar (CustomImage)
-
(
void
)drawRect:(CGRect)rect
{
UIImage
*image = [UIImage imageNamed:
@"yourNavBgHere"
];
[image
drawInRect:CGRectMake(0, 0,
self
.frame.size.width,
self
.frame.size.height)];
}
二、修改导航栏的左右按钮
iOS的NavigationController自带有左右两个按钮,但是默认的style也就那样,通常需要自定义左右按钮的样式。
rightButton
= [[UIButton alloc] init];
[rightButton
setImage:[UIImage imageNamed:
@"yourImgHere"
]
forState:UIControlStateNormal];
rightButton.frame
= CGRectMake(0, 0, 51, 30);
[rightButton
addTarget:
self
action:
@selector
(yourMethodHere:)
forControlEvents:UIControlEventTouchUpInside];
rightButton.exclusiveTouch
=
YES
;
//
如果你同时放上左右两个button,最好加上这句使得两个按钮不会同时被按下
self
.navigationItem.rightBarButtonItem
= [[[UIBarButtonItem alloc] initWithCustomView:rightButton] autorelease];