iOS 透明导航栏

在iOS 11以前的好多导航栏透明方法不管用了,原因是11导航栏做了修改,详细说明请看大神文章,戳个链接:iOS NavigationBar 导航栏背景颜色设置 + iOS11 适配

在translucent属性设置为NO之后会出现问题,把translucent设置为YES,之后加上代码:

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];
    
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController.navigationBar  setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:nil];
}

暂时感觉效果还好,应该还可以优化,等闲下来继续研究一下。

你可能感兴趣的:(iOS 透明导航栏)