UITabBarController的一些基础设置
利用代码添加UITabBarController
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ViewController *vc1 = [[ViewController alloc] init]; UserGuideViewController *vc2 = [[UserGuideViewController alloc] init]; UITabBarController *tabBarController = [[UITabBarController alloc] init]; tabBarController.viewControllers = [[NSArray alloc] initWithObjects:vc1, vc2, nil]; for(int i=0; i<tabBarController.tabBar.items.count; i++) { UITabBarItem *item = [tabBarController.tabBar.items objectAtIndex:i]; item.title = [NSString stringWithFormat:@"子栏目%d",i]; NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor grayColor],UITextAttributeTextColor, nil]; [item setTitleTextAttributes:dict forState:UIControlStateNormal]; NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], UITextAttributeTextColor,nil]; [item setTitleTextAttributes:dict2 forState:UIControlStateSelected]; } self.window.rootViewController = tabBarController; [self.window makeKeyAndVisible]; return YES; }
改变TabBar的背景色
方法一:
UIView *bgView = [[UIView alloc] initWithFrame:self.tabBar.bounds]; bgView.backgroundColor = [UIColor redColor]; [self.tabBar insertSubview:bgView atIndex:0];
方法二:
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]); CGContextFillRect(context, rect); UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); self.tabBar.backgroundImage = image;
改变TabBarItem的(选择/未选择)背景图片
方法一,改变全局:
UIImage *bgImage = [UIImage imageNamed:@"Image1"]; [[UITabBar appearance] setBackgroundImage:[bgImage resizableImageWithCapInsets:UIEdgeInsetsZero]]; [[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"Image2"]];
方法二,改变特定:
[self.tabBar setBackgroundImage:[UIImage imageNamed:@"GuideImage1"]]; [self.tabBar setSelectionIndicatorImage:[UIImage imageNamed:@"GuideImage2"]];
改变TabBarItem的选择与未选择图标
- (void)viewDidLoad { [super viewDidLoad]; UIImage *carIcon = [UIImage imageNamed:@"CarIcon"]; UIImage *grayCarIcon = [UIImage imageNamed:@"GrayCarIcon"]; ViewController *vc1 = [[ViewController alloc] init]; UITabBarItem *item1 = [[UITabBarItem alloc] initWithTitle:@"栏目A" image:carIcon tag:0]; item1.selectedImage = grayCarIcon; vc1.tabBarItem = item1; UserGuideViewController *vc2 = [[UserGuideViewController alloc] init]; UITabBarItem *item2 = [[UITabBarItem alloc] initWithTitle:@"栏目B" image:carIcon tag:0]; item2.selectedImage = grayCarIcon; vc2.tabBarItem = item2; self.viewControllers = [[NSArray alloc] initWithObjects:vc1, vc2, nil]; [self setSelectedViewController:vc2]; }
改变TabBarItem的文本颜色
UITabBarItem *item = self.tabBar.items[0]; NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor grayColor],UITextAttributeTextColor, nil]; [item setTitleTextAttributes:dict forState:UIControlStateNormal]; NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], UITextAttributeTextColor,nil]; [item setTitleTextAttributes:dict2 forState:UIControlStateSelected];