-- 项目中各种对于自定义导航栏的需求, 有添加 loadingView, 去除返回按钮字体, 添加轮播文字视图, 修改导航栏底部线条......等等
不多说,开始正题:
1.系统导航栏添加 loadingView
{
UIActivityIndicatorView*_activity;
}
-- (void)viewDidLoad {
[superviewDidLoad];
// 添加标题
UILabel*title = [[UILabelalloc]initWithFrame:CGRectMake(0,0,60,24)];
title.center=CGPointMake(self.view.center.x,40);
title.textAlignment=1;
title.text=@"我lalallalalallala";
self.navigationItem.titleView= title;
// 网络活动状态
_activity= [[UIActivityIndicatorViewalloc]init];
_activity.frame=CGRectMake(-25,3,20,20);
_activity.color= [UIColorgrayColor];
[self.navigationItem.titleViewaddSubview:_activity];
}
2.导航栏样式设置
// 设置导航条样式
[[UINavigationBarappearance]setBarStyle:UIBarStyleBlack];
// 设置导航条标题颜色
[[UINavigationBarappearance]setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
// 设置导航条其他字体样式
[[UINavigationBarappearance]setTintColor:[UIColor whiteColor]];
// 设置导航栏背景颜色
self.navigationController.navigationBar.backgroundColor = UIColorFromRGB(0x007aff);
3.去除子控制器返回按钮的文字
// 设置工作下子控制器返回按钮无字体
UIBarButtonItem*temporaryBarButtonItem = [[UIBarButtonItemalloc]init];
temporaryBarButtonItem.title=@"";
self.navigationItem.backBarButtonItem= temporaryBarButtonItem;
4.设置导航栏底部黑线颜色
// 设置导航栏底部黑线颜色
[[UINavigationBarappearance]setBackgroundImage:[UIImagenew]forBarPosition:UIBarPositionAnybarMetrics:UIBarMetricsDefault];
[[UINavigationBarappearance]setShadowImage:[UIImageyy_imageWithColor:SEPRATOR_Color]];
// 设置标签栏顶部黑线颜色
[[UITabBarappearance]setBackgroundImage:[UIImageyy_imageWithColor:[UIColor whiteColor]]];
[[UITabBarappearance]setShadowImage:[UIImageyy_imageWithColor:SEPRATOR_Color]];
5.设置状态栏背景及字体颜色
// 设置状态栏背景颜色
-- (void)setStatusBarBackgroundColor:(UIColor *)color {
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = color;
}
}
// 设置状态栏字体颜色
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
注意: 可在 plist 文件中设置 base 控制器的状态栏字体颜色, 添加 View controller-based status bar appearance ------ 设置为 NO 黑色
6. 导航栏添加轮播文字视图
//第三方
SDCycleScrollView *SDScrollview=[SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(kScreenWidth / 2 - 75, 24, 150, 30) delegate:nil placeholderImage:nil];
[self.navigationController.view addSubview:SDScrollview];
7. 导航栏添加自定义(图片/文字) item
// 自定义图片
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"contact_add"] style:UIBarButtonItemStyleDone target:self action:@selector(addContact)];
// 添加多个 item
UIBarButtonItem *monthItem = [[UIBarButtonItem alloc]initWithCustomView:self.monthLab];
UIBarButtonItem *todayItem = [[UIBarButtonItem alloc]initWithCustomView:self.todayButton];
UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
spaceItem.width = 6;
self.navigationItem.rightBarButtonItems = @[monthItem, spaceItem, todayItem];
目前遇到的只有这些, 希望对看官有帮助