iOS设置导航栏透明

来源:转载


设置透明

// 导航栏变为透明


 [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:0];

// 让黑线消失的方法


 self.navigationController.navigationBar.shadowImage=[UIImage new];

变色动画

在NavigationBar下插入一个view,执行动画改变这个view的透明度即可。


 CGRect frame =self.navigationController.navigationBar.frame;
alphaView = [[UIViewalloc] initWithFrame:CGRectMake(0, -20, frame.size.width, frame.size.height+20)];
alphaView.backgroundColor= [UIColorblueColor];
alphaView.userInteractionEnabled=NO;
[self.navigationController.navigationBarinsertSubview: alphaView atIndex:0];

Push到第二个界面不透明

viewDidLoad里设置不透明即可:


 self.navigationController.navigationBar.translucent=NO;

这里有个问题,当从第二个界面POP返回第一个界面时,导航栏变成不透明了。只需要在第一个界面viewWillAppear里设置:


 self.navigationController.navigationBar.translucent=YES;

为防止右滑返回但还是停留在第二个界面时,导航栏出现黑条,在第一个界面viewDidDisappear最好设置:


 self.navigationController.navigationBar.translucent=NO;

OK,搞定,就是这么简单!




分享给朋友:
您可能感兴趣的文章:
随机阅读: