在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];
}
暂时感觉效果还好,应该还可以优化,等闲下来继续研究一下。
网友评论