代码改变世界

iOS开发备忘录:自定义UINavigationBar背景图片和Back按钮

2014-09-04 12:49  王祖康  阅读(26751)  评论(0编辑  收藏  举报

iOS项目,根据设计图,有时需要自定义UIView的UINavigationBar的背景。可以切出来一张1像素左右的背景图片,来充当UINavigationBar的背景。

可以利用NavigationBar的- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics方法将图片填充NavigationBar的背景。

具体代码可参考:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navBarBj"] forBarMetrics:UIBarMetricsDefault];

其中UIBarMetricsDefault指的是手机竖直方向的NavigationBar,另外一个常用的UIBarMetricsLandscapePhone指的是手机横向的NavigationBar。

另外关于自定义Back按钮,以AView跳转到BView为例。

一种方式是在BView的NavigationItem自定义一个LeftBarButtonItem,实现返回导航操作。代码可参考:

 UIBarButtonItem *barButtonItemLeft=[[UIBarButtonItem alloc] initWithTitle:@"返回主页" style:UIBarButtonItemStyleBordered target:self action:@selector(NavigationToMainView)];
[[self navigationItem] setLeftBarButtonItem:barButtonItemLeft];

一种方式是在AView中,设置返回按钮自定义样式。具体代码可参考:

UIBarButtonItem *backItem=[[UIBarButtonItem alloc]init];
    backItem.title=@"";
    backItem.image=[UIImage imageNamed:@""];
self.navigationItem.backBarButtonItem=backItem;