导航栏透明设置-easy模式

我写博客基本上也算是随笔了.想到什么就写点什么.

对于导航栏.我们需要知道

  1. shadowImage去掉导航栏上的线.
  2. 设置颜色渲染颜色等需要设置NavgationBar.
    这两点就OK了.

push或者是pop的时候导航栏如果有黑色的话就是window没有设置颜色.

///在didFinishLoad里面设置Window的背景色为白色.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    return YES;
}

然后在Controller里头

//显示
- (void)setNavVisible {
    self.navigationController.navigationBar.backgroundColor = nil;
    [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:nil];
    ///导航栏上面控件的渲染颜色.
//    [self.navigationController.navigationBar setTintColor:nil];
    ///是否透明.
//    self.navigationController.navigationBar.translucent = NO;
}

//透明
- (void)setNavHidden {
    self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
        ///导航栏上面控件的渲染颜色.
//    [self.navigationController.navigationBar setTintColor:[UIColor White]];
    [self.navigationController.navigationBar setShadowImage:[UIImage new]];
//    self.navigationController.navigationBar.translucent = YES;
}

使用的时候需要在ViewWillAppear或者是ViewWillDisAppear里头写

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self setNavHidden];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self setNavVisible];
}

Demo

猜你喜欢

转载自blog.csdn.net/qq_18683985/article/details/80489629