設置透明
// 導航欄變?yōu)橥该?/p>
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:0];
// 讓黑線消失的方法
self.navigationController.navigationBar.shadowImage=[UIImage new];
變色動畫
在NavigationBar下插入一個view壮锻,執(zhí)行動畫改變這個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;
為防止右滑返回但還是停留在第二個界面時,導航欄出現(xiàn)黑條掰邢,在第一個界面viewDidDisappear最好設置:
self.navigationController.navigationBar.translucent=NO;
OK牺陶,搞定伟阔,就是這么簡單!