- ios-UI基础控件-UITabBarController的详细
- iOS-UITabBarViewController大总结
- UITabBarController、UINavigationC
- UITabBarController与UINavigationC
- UITabBarController和UINavigationC
- UITabBarController与UINavigationC
- UITabBarController和UINavigationC
- UITabBarController和UINavigationC
- UITabBarController与UINavigationC
- UITabBarController+UInavigationC
UITabBarController、UINavigationController相关设置
1、新建一个MainTabBarViewController继承UITabBarController
2、在viewDidLoad方法里修改tabBar属性
self.tabBar.backgroundColor = [UIColor whiteColor]; //修改tabbar背景颜色
self.tabBar.translucent = NO; //tabbar背景设为不透明
//与修改背景图片配合使用,隐藏tabbar上面的线
[self.tabBar setShadowImage:[[UIImage alloc] init]];[self.tabBar setBackgroundImage:[[UIImage alloc] init]];
3、设置UIViewController对应的tabBarItem 属性
vc.tabBarItem.title=@“首页”; //控制tabbar 每个标签的文字
// 让TabBarItem 显示出我们设置的图片的真实样子,而非系统自动渲染的颜色
vc.tabBarItem.image = [ [UIImage imageNamed:@“image”] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];vc.tabBarItem.selectedImage = [[UIImage imageNamed:@"selectImage"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];
//控制TabBarItem选中、未选中 的字体、颜色
[vc.tabBarItem setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:UIColorFromRGB(0x999999,1)} forState:UIControlStateNormal];[vc.tabBarItem setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13], NSForegroundColorAttributeName:ThemeColor} forState:UIControlStateSelected];
vc.tabBarController.tabBar.tintColor = ThemeColor; //控制TabBarItem 的背景颜色
/*
该方法设置的是 UITabBar 的 Item 未选中颜色,这样选中的颜色就能正常显示了,目前发现是在iOS13的系统上才会出现问题,tab颜色变系统蓝
*/
if(@available(iOS13.0, *)) {
[[UITabBar appearance] setUnselectedItemTintColor:UIColorFromRGB(0x999999,1)];
}
4、设置UIViewController对应的UINavigationController 属性
使用HBDNavigationController进行管理更加方便
//包装一个导航控制器后,再称为TabBar的子控制器
UINavigationController *navC = [[HBDNavigationController alloc] initWithRootViewController: vc];[self addChildViewController:navC];
5、新建一个BaseViewController继承UIViewController,统一设置Nav属性
其他controller继承BaseViewController即可
self.hbd_blackBarStyle = YES; //状态栏颜色、默认为黑色
self.hbd_barTintColor = [UIColor whiteColor]; // 背景颜色
self.hbd_barShadowHidden = YES; //隐藏nav下面线
//并不真正隐藏导航栏,只是把它变透明了,当然事件是可以穿透的,也正因为并不真正隐藏导航栏,才可以在导航栏有无之间平滑而优雅地切换
self.hbd_barHidden =YES;如果使用图片来设置背景,并且希望带有透明度,使用带有透明度的图片即可。
如果需要毛玻璃效果,那么设置给hbd_barTintColor的值应该带有透明度,具体数值根据色值的不同而不同。不要通过hbd_barAlpha来调整毛玻璃效果,它是用来动态控制导航栏背景的透与暗的,就像掘金收藏页面那个效果一样。
网友评论