iOS 高度自定义的选项卡控件:LCTabBarController
LCTabBarController 是一个可以高度自定义的 tabBarController,你几乎可以 LCTabBarController 所有的属性。
特性
-
高度解耦!
所有控件全部作为一个单独的类拆开,项目耦合性超低!-->表示属于:
LCTabBarBadge --> LCTabBarItem --> LCTabBar --> LCTabBarController
-
集成简单!
一步集成:把你AppDelegate.m中的UITabBarController单词替换成LCTabBarController即可完成集成!
所以,就算你项目已经完成了,你依然可以随时集成!当然你也可以随时更换回UITabBarController!(但我有 200% 的把握你不会这么做!)
-
零污染!
拥有UITabBarController的全部功能,而没有任何入侵行为!你要做的永远只有一步!
LCTabBarController利用 KVO 监听系统 tabBarItem,你任何对 tabBarItem 的设置都可以继续生效!
如:viewController.tabBarItem.image = [UIImage imageNamed:@"tabbar_home"]; // 生效!
someVC.hidesBottomBarWhenPushed = YES; // 生效!
-
高度自定义!
你可以自由设置下列属性,也可以选择去代码中直接改!
-
tabBar 标题字体颜色(普通、高亮等)
-
tabBar 标题字体
-
tabBar 图片所占比例
-
tabBar 小红点 frame
-
tabBar 小红点 字体
-
...
-
-
如果觉得还不错,请点击右上角 star!⭐️ 谢谢!
我会根据 Issue 持续更新,如果你想随时了解我的进度,请点击右上角的 watch!
CocoaPods 安装
把下面的代码添加到你的 Podfile 中:
pod 'LCTabBarController' # Podfile
无 CocoaPods 安装
直接把LCTabBarController文件夹拽入你的项目中,这个文件夹可以在 Demo 中找到。
使用
- 在你的AppDelegate.m里面:
// 导入头文件 #import "LCTabBarController.h" // 1. 如果你项目已经开工,哪怕已经写完了 // 只需在 application:didFinishLaunchingWithOptions: 方法里面替换一句代码 UITabBarController *tabBarC = [[UITabBarController alloc] init]; -> LCTabBarController *tabBarC = [[LCTabBarController alloc] init]; // 2. 如果你刚刚开始写一个新项目 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; [self.window makeKeyAndVisible]; // 示例代码 HomeVC *vc1 = [[HomeVC alloc] init]; vc1.view.backgroundColor = [UIColor whiteColor]; vc1.tabBarItem.badgeValue = @"23"; vc1.title = @"Home"; vc1.tabBarItem.image = [UIImage imageNamed:@"tabbar_home"]; vc1.tabBarItem.selectedImage = [UIImage imageNamed:@"tabbar_home_selected"]; // vc2 vc3 ... UIViewController *vc4 = [[UIViewController alloc] init]; vc4.view.backgroundColor = [UIColor yellowColor]; vc4.tabBarItem.badgeValue = @"99+"; vc4.title = @"Profile"; vc4.tabBarItem.image = [UIImage imageNamed:@"tabbar_profile"]; vc4.tabBarItem.selectedImage = [UIImage imageNamed:@"tabbar_profile_selected"]; UINavigationController *navC1 = [[UINavigationController alloc] initWithRootViewController:vc1]; UINavigationController *navC2 = [[UINavigationController alloc] initWithRootViewController:vc2]; UINavigationController *navC3 = [[UINavigationController alloc] initWithRootViewController:vc3]; UINavigationController *navC4 = [[UINavigationController alloc] initWithRootViewController:vc4]; /**************************************** Key Code ****************************************/ LCTabBarController *tabBarC = [[LCTabBarController alloc] init]; tabBarC.viewControllers = @[navC1, navC2, navC3, navC4]; self.window.rootViewController = tabBarC; /******************************************************************************************/ return YES; }