都是网上找的自己整理一下
//背景色
[[UINavigationBar appearance] setBarTintColor:UIColorWithRGBA(117, 210, 185, 1)];
//title的颜色
[[UINavigationBar appearance]setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
//返回按钮的颜色
[[UINavigationBar appearance]setTintColor:[UIColor whiteColor]];
//返回按钮不带文字
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
//下面两个方法会让导航栏透明
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
barImageView = self.navigationController.navigationBar.subviews.firstObject
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
//导航栏的颜色
barImageView.alpha = _tableView.contentOffset.y / 100;
//中间文字的颜色
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor colorWithRed:_tableView.contentOffset.y/100 green:_tableView.contentOffset.y/100 blue:_tableView.contentOffset.y/100 alpha:1]};
//右边按钮的颜色
[self.rightBtn setTitleColor:[UIColor colorWithRed:_tableView.contentOffset.y/100 green:_tableView.contentOffset.y/100 blue:_tableView.contentOffset.y/100 alpha:1] forState:UIControlStateNormal];
}
注意:
在push到下一个界面的时候让tableView或者scrollView的delegate = nil,再将
barImageView.backgroundColor =UIColorWithRGBA(117, 210, 185, 1);
barImageView.alpha = 1;
设置回来
;在viewwillappear中又将代理设置回来。谨记!!!