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

时间:2022-06-10 04:16:42

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;