之前遇到一些tabBar的item颜色、图片问题,在这里记录一下:
首先设置item的图片(选择时和未选择时)iOS7以前的方法不适用了,要用下面的方法
UITabBarItem *tabBarItem = [tabBar.tabBar.items objectAtIndex:0];
[(UITabBarItem *)[tabBar.tabBar.items objectAtIndex:0] setTitle:@"FIRST"];
UIImage *unselectedImage = [UIImage imageNamed:@"bottom_person_normal.png"];
UIImage *selectedImage = [UIImage imageNamed:@"bottom_person_press.png"];
[tabBarItem setImage: [unselectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
[tabBarItem setSelectedImage: selectedImage];
/*1*/
UITabBarItem *tabBarItem1 = [tabBar.tabBar.items objectAtIndex:1];
[(UITabBarItem *)[tabBar.tabBar.items objectAtIndex:1] setTitle:@"SECOND"];
UIImage *unselectedImage1 = [UIImage imageNamed:@"bottom_setting_nomal.png"];
UIImage *selectedImage1 = [UIImage imageNamed:@"bottom_setting_press.png"];
[tabBarItem1 setImage: [unselectedImage1 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
[tabBarItem1 setSelectedImage: selectedImage1];
当然上面的只是让item显示出来,但是系统会有一个默认颜色,(选择是是蓝色,未选择时时灰色),如果你不用代码改变的话,就是系统默认颜色
下面是把item的颜色改为自己的:
//改变图片的颜色
[tabBar.tabBar setTintColor: [UIColor orangeColor]];
//改变文字的颜色
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor grayColor] }
forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor orangeColor] }
forState:UIControlStateSelected];