3、设置了状态栏字体的颜色,但是手势返回有效

作者: 编程  发布:2019-12-10

 

  1. 修改navigationBar 字体颜色

下面这种效果,(不知道怎么设置文章格式,写的比较随意,请谅解)

  设置全局导航栏颜色,标题大小和UIBarButtonItem字体大小

在appdelegate里面设置

swift:

UINavigationBar.appearance().barTintColor = UIColor.init(red: 47, green: 48, blue: 52)

        UINavigationBar.appearance().tintColor = UIColor.whiteColor()

        UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont.boldSystemFontOfSize(18),NSForegroundColorAttributeName: UIColor.whiteColor()]

        UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont.boldSystemFontOfSize(15),NSForegroundColorAttributeName: UIColor.whiteColor()], forState: UIControlState.Normal)

 

oc:

#pragma mark -  设置全局返回按钮,无文字

    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)

                                                         forBarMetrics:UIBarMetricsDefault];

 

如果需要设置导航栏颜色,使barItem颜色也被渲染了,可以这样设置(就可以保证barItem里面图片的颜色不被渲染了)

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage: [[UIImage imageNamed: @"xiaoxi_icon"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal] style: UIBarButtonItemStylePlain target: self action: @selector(a)];

 

 

如果导航栏与view出现了空隙。需要把系统默认设置空隙值关掉

#pragma 设置控制器,出现默认知道空隙

//    self.automaticallyAdjustsScrollViewInsets = NO;

A(第一种). [[UINavigationBar appearance] setBackgroundImage:[UIImage imageWithColor:[UIColor redColor]] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[UIImage new]];

图片 1

B(第二种).
[self.navigationController.navigationBar setTintColor:[UIColor redColor]];
[self.navigationController.navigationBar setBarTintColor:[UIColor redColor]];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:[UIColor redColor]] forBarMetrics:UIBarMetricsDefault];

导航栏颜色和界面背景颜色是一样的,我是定义了一个宏

  1. 修改系统返回按钮,字体颜色大小
    UIImage *backButtonImage = [UIImage imageNamed:@"back"];

    [[UINavigationBar appearance] setBackIndicatorImage:backButtonImage];
    [[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:backButtonImage];
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(NSIntegerMin, NSIntegerMin) forBarMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont boldSystemFontOfSize:MZFontNavigationTitleFontSize]}];

1、没有隐藏导航栏

在ios10中,如果需要对单个页面修改颜色,在viewWilldisapper里面重置无效[但是手势返回有效,返回按钮返回颜色会有明显变化],这个时候需要在navigationcontroller的方法popviewcontrollerxxx(或者pushviewcontroller)里面重置导航颜色

2、设置了导航栏的颜色

3、设置了状态栏字体的颜色

4、隐藏了导航栏的黑线

代码如下:

图片 2

图片 3

//  导航栏颜色

    [[UINavigationBar appearance] setBarTintColor:navigationBarColor];

    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

    [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor],NSFontAttributeName : [UIFont boldSystemFontOfSize:17]}];

    //  去掉导航黑线

    // [[UINavigationBar appearance]  setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

    [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

// ------- 界面中 -----

self.view.backgroundColor = navigationBarColor;

//设置navigationbar的半透明

[self.navigationController.navigationBar setTranslucent:NO];

//设置状态栏字体颜色为白色

self.navigationController.navigationBar.barStyle = UIStatusBarStyleLightContent;

本文由9159.com发布于编程,转载请注明出处:3、设置了状态栏字体的颜色,但是手势返回有效

关键词: