iOS 导航栏问题汇总

1、导航栏设置的颜色和实际的颜色有差别

这里是因为导航栏默认是有透明度的,添加self.navigationController.navigationBar.translucent = NO; 将导航栏设置成不透明的即可。

2、设置导航栏背景颜色可以使用

[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];

默认带有一定透明效果,可以使用self.navigationController.navigationBar.translucent = NO;去除系统效果

3、改变导航栏的字体颜色(只改变导航的颜色,不改变状态栏的)

[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]}];

4、将状态栏和导航栏字体全变为白色

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

5、改变导航栏字体大小

[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:[UIFont systemFontOfSize:25]}];

6、为导航栏设置背景图片

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

7、导航栏透明

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]
 self.navigationController.navigationBar.shadowImage = [UIImage new];

8、导航栏设置透明后,在设置为不透明

[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:nil];

9、将导航栏标题修改为一个图片或者logo

self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo"]];

10、隐藏返回按钮的返回两个字

UIBarButtonItem *item = [UIBarButtonItem appearance];
[item setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];

11、修改导航栏返回箭头图片 (全局的),必须要两个都设置,并且图片要设置成不渲染

UINavigationBar * bar = [UINavigationBar appearance];
bar.backIndicatorTransitionMaskImage = [UIImage imageNamed:@"back"];
bar.backIndicatorImage = [UIImage imageNamed:@"back"];

12、修改导航栏返回箭头和文字的颜色

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

13、使用UINavigationController时,push到的子页面,左上角会是系统自动取值上一层父页面的title名称。在push前通过设置navigationItem的backBarButtonItem可以直接更换文字

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];  
self.navigationItem.backBarButtonItem = item;  
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 2,546评论 1 14
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,241评论 4 61
  • 虽然没有读原著,但是这本图解也让我获益匪浅。第一份思维导图,书中有作者画的导图参照了很多,自己还是需要练习提炼关键...
    喵小熊阅读 1,899评论 0 0
  • 开心的晚餐,一天的工作,不算忙碌,一直在努力的寻找存在感,只是为了自己能够有存在感就好,我想自己认可后,一点...
    梦梦233600阅读 218评论 0 0
  • 在这个社会上 谁不是一边不想活了,一边努力活着。 1.微商 刚翻了翻自己的朋友圈,充斥着各种微商和保险经纪人,卖吃...
    任美尼阅读 477评论 2 8