1、在页面显示前,将navigationBar的alpha设置为0
-(void)viewWillAppear:(BOOL)animated {
self.navigationController.navigationBar.alpha = 0;
self.navigationController.navigationBar.barTintColor = RGB(36, 170, 142);
self.view.backgroundColor = [UIColor whiteColor];
}
2、在scollview的协议方法里实现上拉显示navigationBar
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat offset = scrollView.contentOffset.y;
if (offset<=0&&offset<=-90) {
self.navigationController.navigationBar.alpha = 0;
}else if(offset<=500){
self.navigationController.navigationBar.alpha = offset/200;
}
}
3、在页面将要消失的时候,将navigationBar的alpha设置为1
-(void)viewWillDisappear:(BOOL)animated {
self.navigationController.navigationBar.alpha = 1;
}
三部就可以实现navigationBar从透明到显示,不用添加其他代码,不要导入别的第三方,只需要三步,但是这个方法只是简单的实现,存在他的缺点,在navigationBar的alpha为0的时候,它上面的title、itembtn也都会消失,在navigationBar显示的时候随之显示