1.首先在viewwillappear方法里實(shí)現(xiàn)隱藏導(dǎo)航欄底部黑線等操作
-(void)viewWillAppear:(BOOL)animated
{
[superviewWillAppear:animated];
//self.tabBarController.tabBar.hidden=NO;
self.navigationController.navigationBar.barStyle= UIBarStyleBlack;//導(dǎo)航欄的背景色是黑色, 字體為白色[self.navigationController.navigationBarsetShadowImage:[UIImagenew]];//用于去除導(dǎo)航欄的底線,也就是周圍的邊線//[searchBar resignFirstResponder];
_isOver=NO;
}
2.在viewWillDisappear方法里還原導(dǎo)航,(如果下個(gè)界面不要求透明)
-(void)viewWillDisappear:(BOOL)animated
{
[superviewWillDisappear:animated];
[[[self.navigationController.navigationBarsubviews] objectAtIndex:0] setAlpha:1];
_isOver=YES;
}
3.接下來(lái)在tableview的滑動(dòng)事件里控制透明度漸變(isShoperDetail可忽略)//導(dǎo)航欄漸變顏色
- (void)scrollViewDidScroll:(UIScrollView*)scrollView
{
? ? ? ? ? ? ? ?if(_isOver) {
? ? ? ? ? ? ? ? ? [[[self.navigationController.navigationBarsubviews] objectAtIndex:0] setAlpha:1];
? ? ? ? ? ? ? ? ? return;
? ? ? ? ? ? ?}
? ? ? ? ? ? ? CGFloatoffsetY = scrollView.contentOffset.y;
? ? ? ? ? ? ? if(offsetY >=0) {
? ? ? ? ? ? ? ? ? ? CGFloatalpha = offsetY/80;
? ? ? ? ? ? ? ? ? ?[[[self.navigationController.navigationBarsubviews] objectAtIndex:0] setAlpha:alpha];
? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? [[[self.navigationController.navigationBarsubviews] objectAtIndex:0] setAlpha:0];
? ? ? ? ? ? ? ? ? }
}
4.大家可以發(fā)現(xiàn)有個(gè)_isOver,這是一個(gè)我定義的bool變量,因?yàn)槲野l(fā)現(xiàn)在viewWillDisappear里設(shè)置還原并不管用,跳出界面后還會(huì)調(diào)用scrollViewDidScroll:方法,所以定義了個(gè)全局的_isOver控制,這樣在跳轉(zhuǎn)到下個(gè)界面的時(shí)候?qū)Ш綑诰筒皇峭该鞯牧?/p>