导航条的自定义:背景颜色设置,按钮标题图片设置,图片坐标修改

一、修改系统原生导航条

修改导航条背景颜色

self.navigationController.navigationBar.barTintColor = [UIColor colorWithHexString:@"#2295f2"];

自定义导航条按钮

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"btn-menu-h"] style:UIBarButtonItemStylePlain target:self action:@selector(menuBtnClick)];

自定义的按钮图片距屏幕边缘太远,可通过以下代码修改

导航条的自定义:背景颜色设置,按钮标题图片设置,图片坐标修改_第1张图片
修改后的rightBarButtonItem边距.png
导航条的自定义:背景颜色设置,按钮标题图片设置,图片坐标修改_第2张图片
系统默认的rightBarButtonItem边距.png
self.navigationItem.leftBarButtonItem.imageInsets = UIEdgeInsetsMake(0,-20,0,0);
self.navigationItem.rightBarButtonItem.imageInsets = UIEdgeInsetsMake(0,-10,0,10);

设置了导航条背景颜色,会导致按钮标题颜色改变,通过以下方法修改

self.navigationController.navigationBar.tintColor = [UIColor whiteColor];

修改标题颜色和字体大小

self.navigationController.navigationBar.titleTextAttributes =@{NSForegroundColorAttributeName: [UIColor colorWithHexString:@"#ffffff"],NSFontAttributeName:[UIFont systemFontOfSize:15]};

修改按钮标题颜色大小

[self.navigationItem.rightBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor colorWithHexString:@"#ffffff"],NSFontAttributeName:navItermFont} forState:UIControlStateNormal];

因为导航条是半透明的,如果不做处理导航条的颜色总是和设计颜色有误差

这行代码可以关闭半透明效果,但是会导致坐标0点移动。

[UINavigationBar appearance].translucent = NO;

关闭坐标0点移动

self.edgesForExtendedLayout = UIRectEdgeNone;

水平有限,关于translucent属性的详细解答请移步:IOS7 导航栏适配--translucent属性设置的问题

你可能感兴趣的:(导航条的自定义:背景颜色设置,按钮标题图片设置,图片坐标修改)