因为Interface Builder中对
NavigationBar的定制修改内容较少,所以需要通过代码方式自定义UINavigationBar,UINavigationItem,UIBarButtonItem,
实现修改NavigationBar的背景图(或者背景色),修改NavigationItem中title的属性(如字体,字号,颜色等),BarButtonItem的背景图
(或者背景色或者文字).
- //NavigationBar设置背景图 (适合于IOS5以上)
- [__navigationBar__ setBackgroundImage:[UIImage imageNamed:@"__导航条背景图__"] forBarMetrics:UIBarMetricsDefault];
- //LeftButton设置属性
- UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
- [leftButton setFrame:CGRectMake(0, 0, __leftButtonWidth__, __leftButtonHeight__)];
- [leftButton setBackgroundImage:[UIImage imageNamed:@"__左按钮背景图__"] forState:UIControlStateNormal];
- [leftButton addTarget:self action:@selector(__leftButtonSelector__) forControlEvents:UIControlEventTouchUpIns
ide]; - [__leftBarButton__ setCustomView:leftButton];
- //RightButton设置属性
- UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
- [rightButton setFrame:CGRectMake(0, 0, __rightButtonWidth__, __rightButtonHeight__)];
- [rightButton setBackgroundImage:[UIImage imageNamed:@"__右按钮背景图__"] forState:UIControlStateNormal];
- [rightButton addTarget:self action:@selector(__rightBarButton__) forControlEvents:UIControlEventTouchUpIns
ide]; - [__rightBarButton__ setCustomView:rightButton];
- //NavigationItem设置属性
- UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
- titleLabel.font = [UIFont boldSystemFontOfSize:__fontOfSize__];
- titleLabel.textColor = __textColor__;
- titleLabel.backgroundColor = [UIColor clearColor];
- titleLabel.textAlignment = UITextAlignmentCenter;
- titleLabel.text = @"__text__";
- __navigationItem__.titleView = titleLabel;
![](https://img-my.csdn.net/uploads/201301/09/1357729708_9343.png)
自定义UINavigationBar (修改系统自带的) 高度及重新调整View的大小